我想要读取stdin上的字符串,所以我选择了fgets。但是我得到了这个警告:初始化从指针生成整数而没有强制转换。
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#define MAX_LINIA 301
int main(int argc,char *argv[]){
char *buffer;
printf("Enter the input\n");
if (fgets(buffer,MAX_LINIA-1,stdin)==NULL) printf("Error")
else printf("%s", buffer);
return 0:
}
答案 0 :(得分:0)
您正在使用buffer
而未初始化它,这会导致未定义的行为。
您不需要使用指针,而是可以使用char数组(给定已定义的最大大小):
char buffer[MAX_LINIA];
然后将fgets更好地写成:
if(fgets(buffer,sizeof(buffer),stdin)==NULL)