C++,打开和编辑文本文件中的数字数据,并将结果放入新文件中
Opening and Editing Numerical Data from a Text File and Putting the Result into a New File, C++
(我知道了!)好的,请注意,我对C++和编程非常陌生。该程序的最终目标是打开一个文本文件,编辑文本文件中的数字(平方正数和双负数),创建一个新文件并在第一行打印新文件的名称,并在新文件中打印新值。程序需要在原始文件中遇到 -99 后停止,但在更改它并将其打印到新文件之前不需要停止。
这是我原来的混乱:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
int value;
ofstream myfile;
myfile.open("exampleFile.txt"); // Create file
myfile << "exampleFile.txtn"; // Print file name in file
string line;
ifstream farrisFile;
farrisFile.open("Farris.txt");
if (farrisFile.is_open())
{
(farrisFile >> value);
while (value > 0)
{
myfile << value * value << endl;
}
do
{
value * 2;
}
while (value > -99);
}
myfile.close();
farrisFile.close();
return 0;
}
这是正确的程序,除了它在最后打印 -198 两次,但这是一个简单的修复。问题是我正在读取的文件位于错误的位置,并且 -1717986920 是下溢的。这是更精致的程序。
#include <iostream>
#include <fstream>
using namespace std;
int main() {
int value; // Establish a variable to use for file values
ifstream farrisFile;
farrisFile.open("Farris.txt"); // Open Farris.txt
ofstream myfile;
myfile.open("TristenStokes.txt"); // Create file
myfile << "TristenStokes.txtn"; // Print file name in file
(farrisFile >> value); // Read first line of Farris.txt
while (value > -99) // Establish sentinel
{
while (value > 0)
{
myfile << value * value << endl;
farrisFile >> value;
break;
}
while (value <= 0)
{
myfile << value * 2 << endl;
farrisFile >> value;
break;
}
continue;
}
if (value == -99)
{
myfile << value * 2 << endl;
}
myfile.close();
farrisFile.close();
return 0;
}
通过写入 farrisFile >> value
从文件中读取整数。请注意,错误位于第 while(value > 0)
行中,因为如果从文件中读取的值为正,它将始终保持正数。您永远不会在循环中再次从文件中读取新值。导致无限循环。你想要的是从文件中读取一个整数,只要你没有得到 -99。也许这就是你想要的。
while(1){
farrisFile >> value;
if(value < 0){
myFile << 2*value << endl;
if(value == -99) break;
}
else{
myFile << value * value << endl;
}
}
相关文章:
- 使用 find 解析文件会给出不同文件的奇怪结果
- Boost program_options将多个配置文件解析结果存储到一个parsed_options中
- 如何从主.cpp中的cpp文件中获取功能结果?
- CSV文件之间的差异,使用getline()产生不同的结果
- 为什么这段代码(在 Matlab 的 MEX 文件中使用 OpenMP)给出不同的结果?
- 使用 BOOST property_tree / iostreams / 文件系统 / foreach - 结果出现链接
- 如何在EXECUTE_PROCESS中使用文件(GLOB_RECURSE)的结果?
- 按扩展名过滤搜索文件会返回太多结果
- 当与Windows和Linux下的Ifstream相反的二进制文件时,结果不同
- C 可执行文件从浏览器下载而不是显示结果
- 从文本文件中读取并使用 sizeof 结果计算整数的数量到 nan
- 如何指定创建文件函数获取未缓存的结果?
- 该程序应该创建一个带有结果的输出文件,但文件中没有任何内容
- VIM:执行复杂文件类型的脚本和显示结果
- 为什么在 2 个不同的 cpp 文件中定义内联全局函数会导致神奇的结果
- 如何在C 中为文本文件编写代码结果(在void函数之内)
- 如何将结果存储到文本文件中
- 多线程文件读取为每个线程生成相同的结果
- 获取命令行请求的结果并打开文件
- 写入正确的位图文件结果