mah*_*ood 1 c++ fstream visual-studio-2010
一个非常简单的程序:逐行读取文件(每行包含整数)然后执行某些操作并将输出写入文件.
int main()
{
ifstream fin ("f:\in.txt");
ofstream fout ("f:\out.txt");
int a;
while (fin >> a) {
int b = (a >> 6) & 255;
fout << b << endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输入为多行,如下所示:
93859312
2635577168
2929619024
312396812
3019231016
3139200356
...
Run Code Online (Sandbox Code Playgroud)
但while循环只迭代一次!! 和输出只包含
183
Run Code Online (Sandbox Code Playgroud)
这对应于第一个输入行.为什么???
第一个之后的数字大于int可以表示的数字.
而不是int a;,使用long long int a;
最大的价值不是一个int可以代表为2,147,483,647:
什么是一个Int32的最大值?
你的第一个值小于此值,但你的第二个值不是.因此(fin >> a)失败(即不是真的),并且你的程序退出while循环.
| 归档时间: |
|
| 查看次数: |
1164 次 |
| 最近记录: |