流的fscanf类型函数
fscanf type function for streams?
我习惯于使用fscanf进行简单的文件输入,因为它使它变得简单。不过,我正在尝试转向流媒体,我希望能够做到这一点:
fscanf(file, %d %s, int1, str1);
正如您所看到的,读取文件相对容易,将遇到的第一个int粘贴到一个容器中,然后将第一个字符串粘贴到char*中。我想要的是使用fstream,使用流函数来实现这一点。这就是我用有限的流知识想出的。
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。
正如你所知,这很糟糕,有几个原因,我从来没有真正使用过这个,但这是我能想到的全部。有更好的方法吗?
要从流中读取两个整数,所要做的就是
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)
或者其他什么。
相关文章:
- 为什么在我的函数类型后使用引用运算符 (&) 允许我修改它返回的值?
- 来自 DLL 的函数调用 [表观调用的括号前面的表达式必须具有(指向-)函数类型]
- 是否有任何建议来统一函数类型限定符并简化可恶的函数类型?
- 关于 C++ 中的函数类型定义
- 用于检测函数类型是否为否的特征
- 函数类型参数的模板参数推导
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- C++无效的函数类型转换
- STL 函数和函数类型与函数指针类型
- 如何将result_of与函数类型定义一起使用
- 将模板(没有规范)传递给 std::thread() 会出现错误:<未解析的重载函数类型>匹配错误
- C++ 编译错误:gnu_printf是无法识别的格式函数类型
- 专门用于"direct"函数类型(与函数指针类型相对)
- 将函数类型作为模板参数传递不会编译
- 通过参数传递 lambda(无函数类型模板)
- 如何在模板参数中分离函数类型返回类型和参数
- 为什么比较函数类型需要指定为模板参数?
- 带有限定符的函数类型定义用例
- 如何声明对函数类型的常量引用
- 非类型模板参数允许各种函数类型?