6.3w+
社区成员
#include "stdlib.h"
char* GetFileNameByInput(char Buffer[])
{
printf("Please input a shape file's name with directtory:\n");
while(gets(Buffer)==NULL)
printf("Sorry you input nothing!Please try again\n");
return Buffer;
}
int main(int argc,char** argv)
{
char* InputFileName;
char FileNameBuffer[256];
FILE* fp;
if (argc < 2)
InputFileName = GetFileNameByInput(FileNameBuffer);
else
InputFileName = argv[1];
if ((fp=fopen(InputFileName,"r"))==NULL)
{
printf("Can't open file!Please check FileDirectory or FileName\n");
return 0;
}
unsigned int FileCode;//从fp文件中读出一个unsign int的数据,所临时存储的内存地址
while(1)//文件未读完
{
fscanf(fp, "%u,", &FileCode);
printf("%u\t",FileCode);
if (feof(fp))
break;
}
fclose(fp);
return 1;
}
----------
测试,text.txt
文件内容
0,1,2,3,4,5
输出
Please input a shape file's name with directtory:
test.txt
0 1 2 3 4 5 5
/*这是一道读取文件(只是存储整形数的文件)内数据的C++程序,不知为什么运行的时候,读出的数据不对啊!
各位大哥帮忙看看哪里错了。谢谢!
*/
#include"Test Read_WriteFile.h"
char* GetFileNameByInput(char Buffer[])
{
printf("Please input a shape file's name with directtory:\n");
while(gets(Buffer)==NULL)
printf("Sorry you input nothing!Please try again\n");
return Buffer;
}
int main(int argc,char** argv)
{
char* InputFileName;
char FileNameBuffer[256];
FILE* fp;
if(argc <2)
InputFileName=GetFileNameByInput(FileNameBuffer);
else
InputFileName=argv[1];
if((fp=fopen(InputFileName,"rb"))==NULL)
{
printf("Can't open file!Please check FileDirectory or FileName\n");
return 0;
}
unsigned int FileCode;//从fp文件中读出一个unsign int的数据,所临时存储的内存地址
while(!feof(fp))//文件未读完
{
fread(&FileCode,sizeof(unsigned int),1,fp);
printf("%u\t",FileCode);
// ) // 貌似是个圆括号,应该过不去编译
}
// free(&FileCode); // 不是动态分配的,干吗要 free,这样要出问题的
// feof(fp); // 这是干吗?
fclose(fp); // 你是想这样吧
return 1;
}
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char* argv[])
{
FILE* fp;
if((fp=fopen(argv[1],"rb"))==NULL)
{
printf("Can't open file!Please check FileDirectory or FileName\n");
return 0;
}
//unsigned int FileCode;//从fp文件中读出一个unsign int的数据,所临时存储的内存地址
char buf;
while(!feof(fp))//文件未读完
{
//fread(&FileCode,sizeof(unsigned int),1,fp);
fread(&buf,sizeof(char),1,fp);
printf("%c",buf);
}
feof(fp);
return 1;
}