文件输入以空格结束的问题?为什么会出现-858993460?
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
void input(istream& ins,int array[],int& i);
//前条件:ins已经连接到一个输入流可以是键盘,也可以是文件
//后条件:一次读取输入流的int整型数值,并存入一个数组
void sort(int array[],int size);
//前条件:一个数组已经存在,并且大小已知了
//后条件:重新排序数组,使数组按升序排列
int main()
{
int i=0,array[30];
ifstream in_stream;
in_stream.open("textfile6_1.txt");
if(in_stream.fail())
{
cout <<"Input file opening failed!\n";
exit(1);
}
input(in_stream,array,i);
sort(array,i-1);
cout <<"The max is:"<<array[i-1]<<endl;
cout <<"The min is:"<<array[0]<<endl;
return 0;
}
void input(istream& ins,int array[],int& i)
{
while(!ins.eof())//重点是这里,如果输入文件里是:1[空格]...22[空格]1,那么输出正常
{
ins >>array[i];//如果输入文件里是1[空格]...22[空格]1[空格],那么读入的最后一个字符是
cout <<array[i]<<endl;//-858993460,为什么会这样呢?????
i++;
}
}
void sort(int array[],int size)
{
while(size!=0)
{
int j=0,k=1;
for(int n=0;n<size;n++)
{
if(array[j]>array[k])
{
int temp;
temp=array[j];
array[j]=array[k];
array[k]=temp;
}
j++;
k++;
}
size--;
}
}
问题:
问题在input函数那里,如果以空格或者回车之类的空白字符结束,就会出现最后读入的数据是-858993460,如果以普通字符结束,就不会出现这种情况,请问,为什么会这样呢?还有记事本里面的文件结束标志可以读取和输出么?
...全文
相关推荐
C语言scanf函数应用问题.doc
C语言scanf函数应用问题.doc
C语言上机实验五C语言上机实验五.doc
C语言上机实验五C语言上机实验五
VC++6.0调试说明
Microsoft Visual C++ 6.0 基本调试说明
c++学习心得
c++学习心得 对于初学都非常有帮助的资料呀
C++构造函数深度学习
本文针对C++构造函数进行深度探究,供大家参考,具体内容如下 1、引子: 以下代码中的输出语句输出0吗,为什么? struct Test { int _a; Test(int a) : _a(a) {} Test() { Test(0); } }; Test obj; cout << obj._a << endl; 输出为:-858993460 2、剖析 上面代码的输出为一个垃圾值,也就是说obj调用构造函数并没有对成员进行初始化工作,虽然默认无参构造Test()内部调用了Test(int a),但从结果看,初始化工作并不成功。这是为什么呢? 在执行构造


