Извините за вопрос noob, но я новичок в C++.Простой вопрос ввода/вывода noob (C++)
Мне нужно прочитать некоторую информацию из строки, выполнить некоторые вычисления и выполнить вывод в другой файл. Например, мы читаем уникальный идентификатор для каждой строки, имени и 2 номера. Последние 2 цифры умножаются, и в выходном файле, идентификатор, имя и продукт печатаются построчно:
input.txt:
2431 John Doe 2000 5
9856 Jane Doe 1800 2
4029 Jack Siu 3000 10
output.txt:
ID Name Total
2431 John Doe 10000
9856 Jane Doe 3600
4029 Jack Siu 30000
Мой код похож на этот, но только первая строка появляется в выходном файле. Если я нажимаю Enter
несколько раз, остальные строки появляются в выходном файле:
#include <fstream>
using namespace std;
ifstream cin("input.txt");
ofstream cout("output.txt");
int main() {
int ID, I, J;
string First, Last;
char c;
cout << "ID\tName\t\Total\n";
while ((c = getchar()) != EOF) {
cin >> ID >> First >> Last >> I >> J;
cout << ID << " " << First << " " << Last << " " I * J << "\n";
}
return 0;
}
Это моя единственная проблема, что значения не отображаются в выходном файле, если не нажимать Enter
несколько раз, а затем закройте программу. Может ли кто-нибудь предложить исправление для моего кода выше, чтобы он выполнял задачу без ввода клавиатуры? Благодаря!
Измените cin/cout на что-то еще. Очень сложно читать и создавать проблемы. –
В качестве условного обозначения 'cin' и' cout' определены в заголовке '' для обозначения 'stdin' и' stdout'. Если вы хотите использовать файлы для ввода и вывода, используйте возможности перенаправления консоли: 'app < input.txt > output.txt'. Теперь ваше приложение может использовать разные входные и выходные файлы без перекомпиляции. –
Eclipse