我試圖打開一個.dat文件以用作我的程序的輸入。該任務說我需要將我輸入的文件名稱轉換爲c-string數據類型,以便通過.open(「」)命令讀取它。我的程序編譯完成,但我確信當我嘗試轉換文件名時,我做錯了什麼。我曾四處尋找有類似問題的人,但我沒有運氣,所以你可以給我的任何建議將非常感激!將文件的名稱轉換爲c字符串
這裏是我嘗試打開文件的功能,以及我嘗試轉換文件名的其他功能。
int main()
{
ifstream fp;
string name[SIZE], filename;
int counter, idx = 0;
float rate[SIZE], sum[SIZE], gross[SIZE], with[SIZE], pay[SIZE], net[SIZE], hours[SIZE];
getfile(fp, filename);
readFile(fp, name, rate, hours);
pay[SIZE] = calcPay(rate, sum);
gross[SIZE] = calcGross(pay);
with[SIZE] = calcAmount(gross);
net[SIZE] = calcNet(gross, with);
output(name, rate, sum, with, gross, net, pay, SIZE);
return 0;
}
//Convert filename into C-string
string convert(ifstream &fp, string filename)
{
fp.open(filename.c_str());
return filename;
}
//Get file name from user.
void getfile(ifstream &fp, string filename)
{
cout <<" Enter the name of the file: ";
cin>>filename;
convert(fp, filename);
fp.open("filename");
if (!fp)
{
cout<<"Error opening file\n";
exit (1);
}
}
是什麼讓你覺得你做錯了什麼? – 0x499602D2
當你運行程序時會發生什麼?如果編譯器沒有發出抱怨,您的轉換必須給出一些合理的結果... – abiessu
當我輸入爲作業下載的.dat文件的名稱時,程序輸出「Error opening file」。 – user3063730