fstream输出乱码的问题
#include <iostream.h>
#include <fstream.h>
#define N 1999 // < <----------------改成2000在prime.txt中就是乱码,1999就不是
int source[N];
void main()
{
int i,j;
fstream fs( "e:\\prime.txt ");
for(i=1;i <N;i++)
source[i]=i;
for(i=1;i <N;i++)
{
if(source[i]!=0)
for(j=2;j <i;j++)
{
if(source[j]!=0&&source[i]%source[j]==0)
{
source[i]=0;
break;
}
}
}
for(i=1;i <N;i++)
{
if(source[i]!=0)
fs < <source[i] < < ' '; // < <----------------------这个地方如果是cout,即使N很大输出也不会出错
}
}
我自己又写了一个程序
#include <iostream.h>
#include <fstream.h>
void main()
{
fstream fs( "d:\\temp.txt ");
unsigned long int m=990000;
for(unsigned long int i=0;i <m;i++)
fs < <i < < ' ';
}
第二个程序的运行结果是正确的
我不明白第一个程序,如果是申请source[N]的时候出错,为什么程序后边改成cout就不会出错了,
如果是fs出错,为什么第二个程序的运行结果是正确的呢??很是疑惑,望高手指点迷津,谢谢
[解决办法]
H:\zTest\main.cpp(8) : error C2664: '__thiscall fstream::fstream(int) ' : cannot convert parameter 1 from 'char [13] ' to 'int '
我的vc6.0报错,缺什么东西吗?
[解决办法]
没有出错,只是显示的是乱码,用ultraedit就可以看到你所存的内容
[解决办法]
不要用notepad打开即可。纯文本的内码判断问题。
[解决办法]
或者是写字板、word等
[解决办法]
ofstream fs( "e:\\prime.txt ");
[解决办法]
格式问题。 你是按照什么格式读取文件的,按照什么格式输出流?
查找fstream 的格式。 指的是2进制流这种格式
[解决办法]
有几点我要告诉LZ
1.你没有使用标准C++写法。在C++中用const 代替#define.好处是可以进行类型检查
2.不明白你的下标为什么要从1开始
3。文件打开了没关上。造成资源浪费。