【发布时间】:2021-02-26 10:23:02
【问题描述】:
我有一个 .txt 文件,这些在顶部的这一行 '12 4 25 257' 每个数字由 ' ' 隔开,该行以 '\n' 结尾
我有这些变量和一个函数getFirstLine:
int A;
int B;
int C;
int D;
ifstream File("a.txt");
void getFirstLine(int &A, int &B, int &C, int &D)
{
int list[] = {A, B, C, D};
string myText;
getline(File, myText);
int size = myText.size();
cout << size;
for (int i = 0; i < size; i++)
{
if (myText[i] != ' ')
{
list[i] = (int)myText[i] - 48;
cout << list[i] << endl;
}
}
}
我想基本上将第一个数字保存在 A 上,第二个保存在 B 上,第三个 C 等等...
可悲的是,我似乎无法正常工作:( 有人可以帮我解决这个问题吗?
输出应如下所示:
A = 12,
B = 4,
C = 25,
D = 257,
【问题讨论】:
-
您大致走上了一条不错的道路,但您似乎已经发现,它非常笨拙。考虑使用标准化的解析函数 (
std::stoi),或者直接使用提取运算符来提取数字。 -
读一行,你已经这样做了。然后将 line 放入
std::istringstream中,然后使用它来解析数字。你现在所做的并没有做任何你想做的事情,没有任何意义,并且会导致未定义的行为。
标签: c++ file c++11 fstream ifstream