Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα, 

Θελω να κανω ενα προγραμμα σε c++ οπου θα πρεπει να διαβαζει χαρακτήρες απο το πληκτρολόγιο και να εμφανίζει την θέση(γραμμη και στήλη)otan βρίσκει τον χαρακτήρα '{' ή '}' .Πρώτον πως να διαβάζει όλο το αρχείο χαρακτήρα προς χαρακτήρα και δεύτερον πως μπορώ να εμφανίζω την γραμμή και την στείλει για τον κάθε χαρακτήρα.

Μεχρι στιγμής εχω κανει αυτο 

#include <iostream>
#include <fstream>
using namespace std;
main()
{
 char s[30];
 int age=1;
 ifstream f; // Δηλώνουμε ένα ρεύμα εισόδου f
 f.open("example.txt",ios::in);
 if (!f) // Αν το f πάρει τιμή false τότε το αρχείο δεν άνοιξε
 {


 cerr<<"Could not open file"<<endl;

 }
 else
 cout<<"File opened succesfully"<<endl;
  f>>s>>age; // Διαβάζουμε τα δεδομένα
 cout<<"Name: "<<s<<endl; // Τυπώνουμε τα δεδομένα
 cout<<"Age: "<<age<<endl; // Τυπώνουμε τα δεδομένα

 f.close(); // Κλείνουμε το αρχείο

}

Δημοσ.

 

Καλησπέρα, 

Θελω να κανω ενα προγραμμα σε c++ οπου θα πρεπει να διαβαζει χαρακτήρες απο το πληκτρολόγιο και να εμφανίζει την θέση(γραμμη και στήλη)otan βρίσκει τον χαρακτήρα '{' ή '}' .Πρώτον πως να διαβάζει όλο το αρχείο χαρακτήρα προς χαρακτήρα και δεύτερον πως μπορώ να εμφανίζω την γραμμή και την στείλει για τον κάθε χαρακτήρα.

Μεχρι στιγμής εχω κανει αυτο 

#include <iostream>
#include <fstream>
using namespace std;
main()
{
 char s[30];
 int age=1;
 ifstream f; // Δηλώνουμε ένα ρεύμα εισόδου f
 f.open("example.txt",ios::in);
 if (!f) // Αν το f πάρει τιμή false τότε το αρχείο δεν άνοιξε
 {


 cerr<<"Could not open file"<<endl;

 }
 else
 cout<<"File opened succesfully"<<endl;
  f>>s>>age; // Διαβάζουμε τα δεδομένα
 cout<<"Name: "<<s<<endl; // Τυπώνουμε τα δεδομένα
 cout<<"Age: "<<age<<endl; // Τυπώνουμε τα δεδομένα

 f.close(); // Κλείνουμε το αρχείο

}

Δεν κατάλαβα ακριβώς τι θέλεις να κάνεις αλλά για να διαβάζεις χαρακτήρα και να κρατάς σειρά,στήλη μπορείς να κάνεις κάτι τέτοιο:

#include <iostream>
#include <fstream>
using namespace std;

int main() {
	ifstream inFile("YOUR_FILE_HERE");
	string line;
	int row = 1;
	while (getline(inFile,line)){
		for(int i = 0; i < line.size(); i++){
			cout << "Char " << line[i] << "  Row:" << row << ", Column:" << i+1 << endl;
		}
		row++;
	}
	return 0;
}
Δημοσ.

[...]

Νομίζω πρέπει να γίνει #include <string> για να δουλέψει η getline.

 

@george1703

Ο κώδικάς σου δεν διαβάζει όλο το αρχείο, αλλά μόνο την πρώτη γραμμή. Θα πρέπει να μπει σε ένα loop. Δηλαδή:

while (!f.eof()) {
		f >> s >> age;
		cout << "Name: " << s << endl;
		cout << "Age: " << age << endl;
}

Ουσιαστικά λες, μέχρι να φτάσει στο τέλος του αρχείου να διαβάζει δεδομένα.

 

Επίσης, στον έλεγχο για το αν υπάρχει το αρχείο, πρέπει να τερματίζεις το πρόγραμμά σου σε περίπτωση που δεν το βρίσκει.

if (!f) {
		cerr << "Could not open file" << endl;
		getchar(); //για να μην κλείνει η κονσόλα του Visual Studio,αν γράφεις εκεί
		exit(0);
	}
	else
		cout << "File opened succesfully" << endl;

Kαι, δεν ξέρω αν είναι πρόβλημα από την μεταφορά του κώδικα από κει που γράφεις εδώ, αλλά γράφεις main() {...} ενώ πρέπει να είναι int main() {...}

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...