george1703 Δημοσ. 11 Μαρτίου 2017 Δημοσ. 11 Μαρτίου 2017 Καλησπέρα, Θελω να κανω ενα προγραμμα σε 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(); // Κλείνουμε το αρχείο }
kaliakman Δημοσ. 11 Μαρτίου 2017 Δημοσ. 11 Μαρτίου 2017 Καλησπέρα, Θελω να κανω ενα προγραμμα σε 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; }
cpttony Δημοσ. 11 Μαρτίου 2017 Δημοσ. 11 Μαρτίου 2017 [...] Νομίζω πρέπει να γίνει #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() {...}
george1703 Δημοσ. 13 Μαρτίου 2017 Μέλος Δημοσ. 13 Μαρτίου 2017 kaliakman cpttonyσας ευχαριστώ πάρα πολύ για τις απαντήσεις.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα