我一直在試圖解決這個問題,現在似乎我所嘗試的所有東西都讓它變得更糟。我正在設計一個程序,它讀取輸入文件,計算並打印到輸出文件。 (它是一個排序計算器)現在我只是試圖讓它顯示輸入中每行的輸出中的名稱和ID號。程序沒有將部件打印到輸出文件中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
它跳過第一和第六名。
我試圖改變的變量字符串變量,改變循環的順序,名字爲兩個可變(第一和最後一個)
任何幫助是極大的讚賞
你爲什麼不使用'的std :: string'而不是'字符XYZ [XX]'任何理由嗎? – WhiZTiM
寫完後關閉文件。 – Sedrick
解決這些問題的正確工具是您的調試器。在*堆棧溢出問題之前,您應該逐行執行您的代碼。如需更多幫助,請閱讀[如何調試小程序(由Eric Lippert撰寫)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。至少,您應該\編輯您的問題,以包含一個[最小,完整和可驗證](http://stackoverflow.com/help/mcve)示例,該示例再現了您的問題,以及您在調試器。 –