将整数写入C++中的.txt文件

问题描述:

我是C++新手,想要在.txt文件中写入数据(整数)。数据有三列或更多列,以后可以读取以供进一步使用。我已经成功创建了一个阅读项目,但是为了编写一个文件而创建的,但它是空白的。我已经尝试了来自多个网站的代码示例,但没有帮助。 从代码中可以看出,我必须写出三个不同方程的结果。将整数写入C++中的.txt文件

#include<iostream> 
#include<fstream> 
using namespace std; 

int main() 
{ 
    int i, x, y; 
    ofstream myfile; 
    myfile.open ("example1.txt"); 
    for (int j; j < 3; j++) 
    { 
     myfile << i ; 
     myfile << " " << x; 
     myfile << " " << y << endl; 
     i++; 
     x = x + 2; 
     y = x + 1; 
    } 
    myfile.close(); 
    return 0; 
} 

请指出错误或提出解决方案。

std::ofstream ofile; 
ofile.open("example.txt", std::ios::app); //app is append which means it will put the text at the end 

int i{ 0 }; 
int x{ 0 }; 
int y{ 0 }; 

for (int j{ 0 }; j < 3; ++j) 
    { 
    ofile << i << " " << x << " " << y << std::endl; 
    i++; 
    x += 2; //Shorter this way 
    y = x + 1; 
    } 
ofile.close() 

试试这个:它会写出你想要的整数,我自己测试它。

基本上我改变的是首先,我初始化所有的变量为0,所以你得到正确的结果,并与thestream,我只是将它设置为std :: ios :: app,它代表追加(它基本上。在文件的结尾总是写整数我也只是做

+0

递增'我'仍然是未定义的行为。所以增加'x'。 – muXXmit2X

+0

这不在我身边,我只是确保它可以写入文件,他完成他想要的整数。 – SoLux

+0

那么你的答案还是会导致未定义的行为,应该通过任何方式避免!你初始化'y',那么问题出现在初始化'i'和'x'的位置。 – muXXmit2X

使用前初始化j

所以,你for循环将是:

for (int j = 0; j < 3; j++) 
{ 
    // ... 
} 

需要初始化ixy用默认值如0
否则,你会得到垃圾值。

+0

感谢写入一条线只能作为初始化何尝不是工作正确 – Learn1

+0

@ Learn1唯一的问题:!欢迎您:-) – Azeem

+1

@ Learn1检查您的编译器选项,使用许多编译器'-Wall'选项将提高警告级别,足以让编译器让您知道显而易见的未初始化的变量使用情况(最好设置尽可能高的警告级别,额外的选项,并保持源警告 - 免费的,它会教你如何以更好的方式重写一些代码,而且通常这些警告实际上指出了真正的问题(尽管有时候它只是化妆品,很少程序员知道比编译器更好,并且有他自己的理由“坏”代码)。 – Ped7g