接受一个单词并将每个字母打印在新行上的程序(c)
我必须用c语言编写一个程序,接受一个没有空格的单词,并在新行上打印出每个字母。但是,我必须使用FGET。我写了这个程序:接受一个单词并将每个字母打印在新行上的程序(c),c,arrays,newline,fgets,C,Arrays,Newline,Fgets,我必须用c语言编写一个程序,接受一个没有空格的单词,并在新行上打印出每个字母。但是,我必须使用FGET。我写了这个程序: #include <stdio.h> #define MAX_LINE 4096 int main(void) { int i; char array[MAX_LINE]; printf("Enter a string: "); fgets(array,MAX_LINE,stdin); for(i=0; arra
#include <stdio.h>
#define MAX_LINE 4096
int main(void) {
int i;
char array[MAX_LINE];
printf("Enter a string: ");
fgets(array,MAX_LINE,stdin);
for(i=0; array[i]!='\0'; i++){
printf("%c\n",array[i]);
}
return 0;
}
但它会在单词末尾多打印两行。我不明白为什么 fgets读取换行符并将其存储在缓冲区中
另见此处:
如果缓冲区中有足够的空间,则将换行符读入缓冲区。您可以修改条件以适应以下情况:
for(i=0; array[i] != '\n' && array[i] != '\0'; i++) {
男:
fgets从流中最多读取一个小于大小的字符,并将它们存储到s指向的缓冲区中。EOF或换行符后,读取停止。如果新行被读取,它将被存储到缓冲区中。缓冲区中最后一个字符后存储了终止的空字节“\0”