我习惯使用fscanf进行简单的文件输入,因为它很简单。我试图转移到溪流,我希望能够做到这一点:
fscanf(file, %d %s, int1, str1);
正如您所看到的,通过文件读取相对容易,将您遇到的第一个int粘贴到一个容器中,然后将第一个字符串粘贴到char *中。我想要的是使用流功能使用fstreams。这是我想出来的,我的知识有限。
while((fGet = File.get() != EOF))
{
int x;
int y;
bool oscillate = false;
switch(oscillate)
{
case false:
{
x = fGet;
oscillate = true;
break;
}
case true:
{
y = fGet;
oscillate = false;
break;
}
}
}
基本上我想扫描一个文件并将第一个int放入x,第二个放入y。
由于一些原因,这是非常糟糕的,正如你所知道的那样,我从来没有真正使用它,但这是我所能想到的。有没有更好的方法来解决这个问题?
答案 0 :(得分:5)
要从流中读取两个整数,您只需要
int x, y;
File >> x >> y;
相当于
fscanf(file, "%d %s", &int1, str1);
时
int x;
string s;
file >> x >> s;
并确保如果要检查读取是否有效,请将读取条件设置为:
if (file >> x >> s)
或
while (file >> x >> y)
或其他什么。