我想要一个程序从我的txt文件中读取int string double
。我想我们应该使用数组。
这是我的txt文件:
1 Nasi Ayam Penyet 8.00
2 Nasi Goreng Pattaya 9.00
3 Nasi Goreng Tom Yam 10.00
4 Nasi Goreng Kampung 8.00
5 Nasi Ayam 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();
}
}
答案 0 :(得分: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如果没有意义留下评论我将尽力解释它。