69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
FILE *fp;
char str[100];
int i;
if((fp=fopen("f:\\test.dat","w"))==NULL)
{
printf("can not open the file.\n");
exit(0);
}
else
{
printf("input a string:");
gets(str);// scanf("%s",str);//
for(i=0;str[i]!='\0'&&i<100;i++)
{
if(str[i]>='a'&&str[i]<='z')
str[i]=str[i]-32;
fputc(str[i],fp);
}
fclose(fp);
fp=fopen("test","r");
fgets(str,100,fp);
printf("%s\n",str);
fclose(fp);
}
return 0;
}
if((fp=fopen("f:\\test.dat","w"))==NULL)
但是在程序后面却只写了
fp=fopen("test","r");
把这一句改为
fp=fopen("test.dat","r");
就ok了。fp=fopen("test","r");
_assert(fp);
if(!fp)
{
ERROR....
}
_TSCHAR * __cdecl _fgetts (
_TSCHAR *string,
int count,
FILE *str
)
{
FILE *stream;
_TSCHAR *pointer = string;
_TSCHAR *retval = string;
int ch;
_VALIDATE_RETURN(( string != NULL ) || ( count == 0 ), EINVAL, NULL);
_VALIDATE_RETURN(( count >= 0 ), EINVAL, NULL);
_VALIDATE_RETURN(( str != NULL ), EINVAL, NULL);
你的 fp 是没有打开,为 NULL。
fp=fopen("test","r");
memset(str, 100, '\0'); // 加上这句试试看!
fgets(str,100,fp);
printf("%s\n",str);
fclose(fp);
fp=fopen("test","r");
fgets(str,100,fp);
printf("%s\n",str);
fclose(fp);
求指教。