函数原型
void FGetStr(char *str, int size, FILE *file);
说明:参数 str 为指示字符数组起始地址的指针,size 为数组尺寸,file 为文件指针。函数从文件输入的字符串(以换行符 '\n' 结束)到字符数组中,并在字符末尾添加字符串结束标记 '\0'。显然,字符串的最大长度应为 size - 1,为字符串结束标记 '\0' 预留空间。若用户输入的字符过多,则函数最多读取 size - 1 个字符,剩余字符仍留在缓冲区中,可以继续被后面的输入函数读取。
要求:不得把文件中的换行符 '\n' 也保存到字符串中。
裁判程序
#include <stdio.h>
#include <string.h>
void FGetStr(char *str, int size, FILE *file);
int main()
{
FILE *f;
char a[10], b[10];
f = fopen("MyStr.txt", "r");
if (f)
{
FGetStr(a, 10, f);
FGetStr(b, 10, f);
puts(a);
puts(b);
fclose(f);
}
return 0;
}
/* 你提交的代码将被嵌在这里 */
创建文本文件 MyStr.txt,复制下面的内容。
- MyStr.txt *
Bob
Mary
输出样例1
Bob
Mary
修改文本文件 MyStr.txt,复制下面的内容。
- MyStr.txt *
Constantine
输出样例2
Constanti
ne
修改文本文件 MyStr.txt,复制下面的内容。
- MyStr.txt *
Francisco
Stevenson
输出样例3
Francisco
Stevenson
void FGetStr(char *str, int size, FILE *file)
{
int i = 0;
char c;
while(c = fgetc(file), c != '\n' && c != EOF && i < size - 1)
{
str[i] = c;
++i;
}
if(c != '\n')
{
ungetc(c,stdin);
}
str[i] = '\0';
}