2017-05-07 38 views
-4

我希望有一個程序,從這樣int string double我的txt文件讀取。我認爲我們應該使用數組。我想要的程序讀取INT字符串雙

這是我的txt文件:

1椰漿雄雞Penyet 8.00

2炒飯芭堤雅9.00

3炒飯冬蔭10.00

4炒飯甘榜8.00

5納西雄雞BBQ 9.00

enter code here` 
#include <iostream> 
#include <fstream> 
#include <cstring> 
#include <cstdlib> 
#include <cctype> 
#include <iomanip> 
using namespace std; 
int main() 
{ 
string name[25]; 
string str[25]; 
string line; 
int first_number[25]; 
double num[25]; 
int i = 0; // to increment the variables above 
ifstream infile; 
infile.open("list.txt"); 
if(infile.is_open()) 
{ 
while(!infile.eof()) 
{ 
infile >> first_number[i]; 
getline(infile,line); 
for(int k = 0; k < line.length(); k++) 
{ 
    if(isdigit(line[k]) || ispunct(line[k])) 
     str[i] += line[k]; 
    else 
     name[i] += line[k]; 
} 
num[i] = strtol(str[i].c_str(), NULL, 0); 
cout << first_number[i] <<name[i]; 
cout <<setprecision(2)<< num[i] << endl; 
i++; 
} 
    infile.close(); 
} 
} 
+1

[鏈接](https://stackoverflow.com/documentation/c%2b%2b/496/file-i-o#t=201705070128316664481) – Tyger

+0

我想要一輛跑車。你有什麼嘗試,你卡在哪裏? S.O不是'爲我代碼'服務。 – enhzflep

+0

抱歉,這是我的代碼,我認爲這是錯誤的財產以後我仍然在C++新是 –

回答

0
string name[25]; 
string str[25]; 
string line; 
int first_number[25]; 
double num[25]; 
int i = 0; // to increment the variables above 

ifstream infile; 
infile.open(filename); 
if(infile.is_open()) 
{ 
    while(infile >> first_number[i]) 
    { 
     getline(infile,line); 
    for(int k = 0; k < line.length(); k++) 
    { 
     if(isdigit(line[k]) || ispunct(line[k])) 
      str[i] += line[k]; 
     else 
      name[i] += line[k]; 
    } 
    num[i] = strtol(str[i].c_str(), NULL, 0); 
    i++; 
} 
     infile.close(); 
} 

對於strtol使用cstdlib如果沒有任何意義留下評論我會盡我所能解釋它。

相關問題