Я пытался решить это какое-то время, и кажется, что все, что я пробовал, сделало его еще хуже. Я разрабатываю программу, которая считывает входной файл, выполняет вычисления и печатает в выходной файл. (Его калькулятор класса). Сейчас я просто пытаюсь заставить его отображать имя и идентификационный номер на выходе для каждой строки на входе.Программа не печатает детали в выходной файл C++
#include <iostream>
#include <fstream>
#include <cstring>
#include <sstream>
using namespace std;
float printRecord (char name[20], char Id[20], ostream& outfile)
{
outfile << name << " " << Id << endl;
return 0;
}
int main()
{
ofstream outfile;
ifstream infile;
std::string line;
char file_nameI[21], file_nameO[21], name[20], Id[20];
float hworkgrade, grade1;
int deductions;
cout << "Please enter name of input file: ";
cin >> file_nameI;
infile.open(file_nameI);
if (!infile)
{
cout << "Could not open input file \n";
return 0;
}
cout << "Please enter name of output file: ";
cin >> file_nameO;
infile.open(file_nameO);
if (!outfile)
{
cout << "Could not open output file \n";
return 0;
}
while (getline (infile, line))
{
istringstream iss(line);
iss >> name >> Id;
cout<< name << " " << Id;
printRecord(name, Id, outfile);
cin.ignore();
}
return 0;
}
Здесь вход
Truman, Tod 12388671 100 100 100
Seger,John 67894 100 100 100 100
Victoire,Susan 938442 0 0 0
Kodak,James 554668 101 100 100
Frence,Lauren 602983 -1 100 100
Hanz, Franz 58027201 100 100 100
Laufeson,Loki 7920100 34 59 24
Вот выход:
12388671
Seger,John 67894
Victoire,Susan 938442
Kodak,James 554668
Frence,Lauren 602983
58027201
Laufeson,Loki 7920100
Он пропускает первым и шестым именем.
Я попытался изменить переменные в строковых переменных, изменяя порядок цикла, устанавливая имя две переменной (первый и последний)
Любая помощь очень ценится
Любая причина, почему вы не используете 'зЬй :: string' в отличие от' символ XYZ [хх] '? – WhiZTiM
закройте свой файл после его написания. – Sedrick
Правильный инструмент для решения таких проблем - ваш отладчик. Перед тем, как просить о переполнении стека, вы должны пропустить свой код по очереди *. Для получения дополнительной информации, пожалуйста, прочтите [Как отлаживать небольшие программы (Эрик Липперт)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Как минимум, вы должны \ [изменить] ваш вопрос, чтобы включить пример [Минимальный, полный и проверенный] (http://stackoverflow.com/help/mcve), который воспроизводит вашу проблему, а также замечания, сделанные вами в отладчик. –