谢谢了,我用一下了.
数组的结尾有默认的\0所以就不用str[i] = '\0';
对不起看错了
我把概念弄错了。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
int getstring(char filename[], char str[]);
char filename[10],str[100];
int m;
printf("please input the name of the file: ");
scanf("%s", filename);
m = getstring(filename, str);
printf("%d\n", m);
printf("%s", str);
return 0;
}
int getstring(char filename[10], char str[100])
{
int i = 0, n;
FILE * fp;
if((fp=fopen(filename, "r")) == NULL)
{
printf("cannot open file.\n");
exit(0);
}
while(!feof(fp))
str[i++]=fgetc(fp);
str[i] = '\0';
n=strlen(str);
fclose(fp);
return(n);
}
这个好象不行,后面还是要出现一个奇怪的字符。