编程中的数组问题!

来源:百度知道 编辑:UC知道 时间:2024/05/08 15:35:24
#include <iostream>
#include <string>
#include <fstream>
using namespace std;

void main()
{
string file_name1;// 以下是从一个记事本文件中读入数据(我在记事本中写了"10 20"数据,并保存在"D:\\Input.txt"文件中!)
cout<<"请输入源文件名(包括路径和后缀名):";
cin>>file_name1;
ifstream infile(file_name1.c_str(),ios::in);
if (!infile)
{
cerr<<"无法打开文件 "<<file_name1.c_str()<<" !!!"<<endl;
exit(-1);
}
cout<<endl;
char f[100];
infile.getline(f,100,EOF);
infile.close();
int i=0;
while(i<100)
{if(f[i]==' ') i++; //如果是空格,是指向下一个字符
else if(f[i]>'0'&&f[i]<='9') //判断是否为十进制数:第一个数不能是0
{
char a[20]; //定义数组a,用来保存这个十进制数
int j=0;
{a[j]=f[i];
i++;j++;
}
while(f[i]>='

程序问题是:定义了数组变量a,添加数字字符后,在结尾处未添加空字符'\0'。建议在语句
cout<<a<<endl;//输出数组a
之前添加一行语句
a[j]='\0';

因为cout将0作为字符串的结束符然而你的a没有初始化为0也没有在分析完数字后为其设符串的结束符

内存出错了啊