假设我有一个包含以下内容的文件
abcdefghijklmnopqrstuvwxyz1234567890
而且我只想从每一行中读取前5个字符,因此它可能类似于以下内容:
abcdemnopqyz123
我尝试了以下解决方案,
char line[5];
for (int i = 0; i < 5; i++){
char c = getchar();
line[i] = c;
printf("%c", line[i]);
}
但是它不起作用。我该如何解决?
stdin
代替了外部文件。#include <stdio.h>
#include <string.h>
int main(void)
{
char line[6];
while ( fgets( line, sizeof( line ), stdin ) != NULL )
{
if ( !strchr( line, '\n' ) ) fscanf( stdin, "%*[^\n]\n" );
else line[strcspn( line, "\n" )] = '\0';
puts( line );
}
return 0;
}
如果输入
abcdefghijkl xyz mnopqrstuvwx yz1234567890
然后输出将是>
abcde xyz mnopq yz123