从文件读取并在一行中写入 cout
Read from file and write to cout in one line
有什么方法可以在一行中执行这两个操作:
fscanf(fp,"%d",&n);
std::cout<<n<<std::endl;
即,我正在寻找类似的东西:std::cout<<fscanf(fp,"%d",&n);<<std::endl;
显然,&n
必须更换。 不过FILE*
必须使用。
是的,可以使用,
运算符内联执行fscanf()
调用:
#include <iostream>
int main()
{
int n = 0;
std::cout<< (fscanf(stdin,"%d",&n),n)<<std::endl;
}
在此处观看现场演示。
对于此示例,没有很多好的用例,但我至少可以认为这是为了节省格式可读性:
假设您有一个类型T
,提供类似void T::update();
的操作,并且您懒得将调用T::update()
包装成类似std::ostream& update(ostream&,T&)
您可以使用此技巧
std::array<std::array<T,4>,4> m { // A matrix of T
{ T::create() ,T::create() ,T::create() ,T::create() } ,
{ T::create() ,T::create() ,T::create() ,T::create() } ,
{ T::create() ,T::create() ,T::create() ,T::create() } ,
{ T::create() ,T::create() ,T::create() ,T::create() }
};
// ....
using u = T::update;
std::cout << "Current matrix state:n" <<
(m[0][0].u(),m[0][0]) << ',' (m[0][1].u(),m[0][1]) << ',' (m[0][2].u(),m[0][2]) << ',' (m[0][3].u(),m[0][3]) << 'n' <<
(m[1][0].u(),m[1][0]) << ',' (m[1][1].u(),m[1][1]) << ',' (m[1][2].u(),m[1][2]) << ',' (m[1][3].u(),m[1][3]) << 'n' <<
(m[2][0].u(),m[2][0]) << ',' (m[2][1].u(),m[2][1]) << ',' (m[2][2].u(),m[2][2]) << ',' (m[2][3].u(),m[2][3]) << 'n' <<
(m[3][0].u(),m[3][0]) << ',' (m[3][1].u(),m[3][1]) << ',' (m[3][2].u(),m[3][2]) << ',' (m[3][3].u(),m[3][3]) << 'n' <<
flush;
相关文章:
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 从C++dll访问C#中的一行主要参数
- std::cout.imbue()多重调用
- 在C++中,我如何接受不同于同一行的用户输入
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 如何从一行中读取特定数量的字符?(C++)
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 读取最后一行代码算法 - c++ 时出现问题
- 查找矩阵C++中每一列和每一行的最小和最大元素
- 从文件读取并在一行中写入 cout
- 如何在C++中从 std::cout 中删除一行
- cout 用于仅打印最后一行的 2D 字符串矢量
- 将最后一行 cout 发送到窗口
- 如何将 cout 和 cin 放在同一行上?
- cout 字符串和向量在同一行中
- 使std::cout在同一行中一个接一个地输出多个字符串