Ofstream一直给我函数的最后一行,而不是显示所有内容
ofstream keeps giving me the last line of the function instead of showng everything
所以我一直在尝试找出一种方法,让函数输入文件中写入的任何内容并输出到 Sha-256 函数中。 也许我为什么要这样做?很简单,我只是想自学 c++ 中的工作方式,但它显示了 stream 函数的最后一行。这是我的主要功能
ifstream input ("/home/findme/Desktop/text.txt"); // opens text.txt file.
string s;
while (getline (input, s))
{
// loop to read every line one by one of the file.
string c = s; // enters function to be converted.
string output1 = sha256(c); // gives back the value of the string.
cout << "sha256('"<< c << "'):" << output1 << endl; //displays the results.
ofstream outfile ("/home/findme/Desktop/result.txt");
outfile << "sha256('"<< c << "'):" << output1 << endl;
outfile.close();
}
好的,所以只是了解发生了什么,它会读取名为 text 的文件的上下文.txt 在这个文件中有 3 行是(test、test2、test3(。 所以它读取一行并将其发送到函数,然后返回,然后它为第二行执行,依此类推。一旦它到达最后一行,cout 函数就会读取此内容
SHA256('测试'(:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
SHA256('Test2'(:60303AE22b998861BCE3B28F33EEC1BE758A213C86C93C076dbe9f558c11c752
SHA256('test3'(:FD61A03af4F77D870FC21E05E7E80678095C92D808CFB3b5C279ee04C74ACA13
没错。 cout 函数没有任何问题,但是当我尝试将其放入名为 result 的外部文件中时.txt它会显示
SHA256('test3'(:FD61A03af4F77D870FC21E05E7E80678095C92D808CFB3b5C279ee04C74ACA13
这就是问题所在,似乎它所做的只是编写最后一个函数。我试图更改 ofstream 在循环外部或 cout 函数之前的位置,它给出了同样的问题,我也尝试了循环,它给出了同样的问题。它只是重复sha256('test3'(。
现在我知道它显然很容易解决,但我没有看到,因此有人可以帮助我吗?我希望它能准确地显示 cout 显示的内容。(没有错误消息,编译没有问题(。谢谢
您正在循环中创建ofstream outfile
。这意味着它通过循环在每次迭代中重新创建。如果将此行移动到示例代码的顶部,它应该可以工作:
ofstream outfile ("/home/findme/Desktop/result.txt");
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 字符串-C++后显示的随机字符
- 用c++从输入文件中读取另一行
- Ofstream一直给我函数的最后一行,而不是显示所有内容
- 通过显示一行星号来创建条形图,该条形图将读取数据的输入文件
- C 在同一行中左右显示文本
- 使用ifstreamwhile循环,如何显示输入错误并在下一行继续
- 引用变量在下一行程序执行后显示未找到的行为
- C ++流文件仅显示while循环后的最后一行
- 有没有办法C++让循环的输出显示在同一行上
- 在c++中显示一行vs单词
- 如何让GDB为每一行输出显示时间戳
- 希望我的代码逐行将矩阵元素转换为向量,它只将矩阵的最后一行显示为向量
- QTableView - 将指针(突出显示所选内容)放在列表的第一行
- Makefiles:是否有一种通用的方法来显示makefile中的哪一行导致了错误
- 如何要求输入后的文本显示下一行在c++中
- 每次一行显示文本文件,等待用户输入
- 从显示输出中最后一行详细信息的文本文件中读取两次
- 它应该以表的形式显示,但它在编译后显示在控制台中的一行中