C getline和fgets之间的区别
你好,我目前正在使用C语言编写一个简单的shell 问题是,我使用函数C getline和fgets之间的区别,c,C,你好,我目前正在使用C语言编写一个简单的shell 问题是,我使用函数fgets读取stdin,而在考试中它是被禁止的,我必须使用getline,所以可以在不更改整个代码的情况下更改它吗 这是我的密码 void remove_end0fLine(char line[]) { int i = 0; while(line[i] != '\n') i++; line[i] = '\0'; } void read_line(char line[]) {
fgets
读取stdin,而在考试中它是被禁止的,我必须使用getline
,所以可以在不更改整个代码的情况下更改它吗
这是我的密码
void remove_end0fLine(char line[])
{
int i = 0;
while(line[i] != '\n')
i++;
line[i] = '\0';
}
void read_line(char line[])
{
char* ret = fgets(line,MAX_CHAR,stdin);
remove_end0fLine(line);
if( strcmp(line,"exit")== 0 || ret == NULL)
exit(0);
}
不知道如何回答这个问题而不告诉你怎么做,这有点违背了考试的教育价值。是的,您可以使用getline作为替换,只需进行最小的更改,但是您需要修改
read\u line
的界面,问题在哪里?它不工作?请注意,getline
正在动态分配内存,这需要清理。但事实上,fgets
是被禁止的,这让我觉得有些东西你不明白,用getline
替换它可能只是一个法律漏洞