Эккель. Философия С++
|
|
vasua99 | Дата: Воскресенье, 07 Октября 2012, 18:12 | Сообщение # 1 |
GNU follower
Сейчас нет на сайте
| Помогите решить, вот само задание:
Выводите содержимое файла по строкам. После вывода каждой строки программа должна ждать, пока пользователь нажмет клавишу Enter
Мое решение, которое не работает(ошибка скорее всего в сравнение символа с кодом Enter'а'):
Code // Вывод файла по строчкам - после каждой требуется нажатие enter #include <iostream> #include <fstream> #include <string> using namespace std;
int main() { string line; char ch; ifstream in("outfile.cpp"); while(in >> line) { cout << line; cin >> ch; while(ch != char(13)) cin >> ch; // 13 - ASCII код Enter } return 0; }
Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
|
|
| |
Andrey_M | Дата: Воскресенье, 07 Октября 2012, 18:54 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Quote (vasua99) int main() { string line;
Вроде { должно быть на новой строке после ().
ЪЪЪЪ! Лучшая благодарность - плюс в репутацию :-)
|
|
| |
vasua99 | Дата: Воскресенье, 07 Октября 2012, 19:05 | Сообщение # 3 |
GNU follower
Сейчас нет на сайте
| ну это уже личные предпочтения)
Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
|
|
| |
Monteg | Дата: Воскресенье, 07 Октября 2012, 19:25 | Сообщение # 4 |
участник
Сейчас нет на сайте
| vasua99, Используй _getch() из conio.h
|
|
| |
vasua99 | Дата: Воскресенье, 07 Октября 2012, 19:28 | Сообщение # 5 |
GNU follower
Сейчас нет на сайте
| а если обойтись C++ стандартной билиотекой? - на момент где задана эта задача - эта функция не изучена еще.
Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
|
|
| |
Levrite | Дата: Воскресенье, 07 Октября 2012, 19:48 | Сообщение # 6 |
участник
Сейчас нет на сайте
| Code #include <iostream> #include <fstream> #include <string> #include <stdio.h> #include <conio.h> using namespace std; int main() { string line; int ch;
ifstream in("c:/stand.txt"); setlocale (LC_ALL, "Russian"); while(in >> line) { ch = getchar(); cout << line; while(ch != 10) ; } getch (); } Промучался минут 20 наверное, 10 ACII код enter в VS 2010. Правда одно но: у меня выводит каждое слово одной строчкой из моего txt файла.
Сообщение отредактировал Levrite - Воскресенье, 07 Октября 2012, 19:49 |
|
| |
Маркер | Дата: Воскресенье, 07 Октября 2012, 19:49 | Сообщение # 7 |
Я таки выше этого
Сейчас нет на сайте
| До чего дожили: задачи из учебников просят им решить. А смысл от этого? Если своим мозгом подумать не суждено, так и программистом стать тоже.
Я не понял смысл твоего поста, поэтому он автоматически может считаться оффтопом. Андрей, 14 лет Если ты ничего не понимаешь в игрострое, то тебе нечего делать на курсах программистов. Андрей, 14 лет
|
|
| |
RUNGOGET2THECHOPAH | Дата: Воскресенье, 07 Октября 2012, 19:53 | Сообщение # 8 |
участник
Сейчас нет на сайте
| Quote (Levrite) у меня выводит каждое слово одной строчкой из моего txt файла. in.getline(line, 100);
|
|
| |
Levrite | Дата: Воскресенье, 07 Октября 2012, 19:59 | Сообщение # 9 |
участник
Сейчас нет на сайте
| Quote (RUNGOGET2THECHOPAH) in.getline(line, 100); error C2664: std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::getline(_Elem *,std::streamsize): невозможно преобразовать параметр 1 из "std::string" в "char *" c:\users\michael\documents\visual studio 2010\projects\help1\help1\123.cpp 12 1 help1
|
|
| |
RUNGOGET2THECHOPAH | Дата: Воскресенье, 07 Октября 2012, 20:04 | Сообщение # 10 |
участник
Сейчас нет на сайте
| Levrite, Code #include <iostream> #include <fstream> #define BUFSIZE 100 using namespace std;
void main() { fstream file; char line[BUFSIZE]; file.open("outfile.txt"); while (!file.eof()) { file.getline(line, BUFSIZE); cout<<line<<endl; //тут ололо-проверка нажатия Enter } file.close(); }
|
|
| |
vasua99 | Дата: Воскресенье, 07 Октября 2012, 21:00 | Сообщение # 11 |
GNU follower
Сейчас нет на сайте
| Для проверки написал тест-программу которая выводит код символа, но при нажатии enter ничего не выводится, почему?(Fedora 17 Xfce, Xfce Terminal Emulator 0.4.8)
Code // Вывод файла по строчкам - после каждой требуется нажатие enter #include <iostream> #include <fstream> #include <string> using namespace std;
int main() { //~ string line; char chs[2]; cin >> chs; cout << static_cast<int>(chs[0]) << " " << static_cast<int>(chs[1]) << "\n"; //~ ifstream in("outfile.cpp"); //~ while(in >> line) { //~ cout << line; //~ cin >> ch; //~ while(ch != char(13)) cin >> ch; // 13 - ASCII код Enter //~ } return 0; } Добавлено (07.10.2012, 21:00) --------------------------------------------- хотя нет, getchar() выдал 10 10, сейчас проверю)
Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
|
|
| |
Levrite | Дата: Воскресенье, 07 Октября 2012, 21:02 | Сообщение # 12 |
участник
Сейчас нет на сайте
| Code #include <stdio.h> int main () { int ch; do { ch = getchar(); printf ("Вы нажали %c. ASCII код = %d\n", ch, ch); } while (ch != 27); } Копипаст Клац
Сообщение отредактировал Levrite - Воскресенье, 07 Октября 2012, 21:02 |
|
| |
vasua99 | Дата: Воскресенье, 07 Октября 2012, 21:03 | Сообщение # 13 |
GNU follower
Сейчас нет на сайте
| Разобрался, все работает))
Code // Вывод файла по строчкам - после каждой требуется нажатие enter #include <iostream> #include <fstream> #include <string> using namespace std;
int main() { string line; int ch; ifstream in("outfile.cpp"); while(getline(in, line)) { cout << line; while((ch = getchar()) != 10); } return 0; }
Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
|
|
| |