最近在学习C++打开文件,并从文件输出数组,遇到很多问题,调试了一晚上仍不满意,直到第二天才解决!
- codeblocks打开txt文件
#include <iostream>
#include <fstream>
using namespace std;
int main()
{ short wcode[3] = {0};
int sal[3] = {0};
ofstream outfile.
outfile.open("D:/12345.txt",ios::app);//以追加方式打开D盘的12345.txt文件
if(!outfail())//判断打开文件是否成功
{ for(int i = 0;i < 3;i++)
{ cin >> wcode[i] >> sal[i];//从键盘写入数组
outfile << wcode[i] << "#" << sal[i] << endl;//将数组输入到outfile中,两个数组间用“#”隔开
}
outfile.close();
}
//打开失败则提示
else{
cout<< " Wrong in openning the file!" <<endl;
}
- 可能遇到的问题
出现上述提示的原因是想要打开的文件路径中包含不可读字符,这是最好手打文件路径或者做如下操作:
codebloks -> settings- >Editor ->General settings -> Encoding setting -> As fallback encoding
如上图所示。
遇到其他问题可评论区留言。
DEV- c++常见问题
- 总的来说,DEV-c++打开文件默认设置非常完善,但不足之处是其敲代码时没有提示,直到调试才知道语法错误。
- 打开文件的代码与上述Codeblocks相同,可能出现的问题是
ofstream outfile;//这一步报错
解决办法是using namespace std;
这种简单错误往往是不易发现的错误。望各位重视!
下面附上从文件中读取数组元素的操作:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{ short wcode[3] = {0};
int sal[3] = {0};
ifstream infile;
infile.open("D:/12345.txt");
if(!infile.fail())
{ for(int i = 0; i < 3;i++)
{ infile >> wcode[i];
infile.ignore(1);//读取一个数组元素后跳过“#”,读取下一个数组
infile >> sal[i];
cout << wcode[i] << " " << sal[i] << endl;//查看读取结果
}
运行结果如下:
您的点赞就是对我最大的鼓励!!!