C 如何获得带空格的字符串输入,并将其放在单独的变量中?
我被这个卡住了,我不知道什么时候设置输入。示例->“LEMON TREE”(在那里我设置了(输入)来读取它的双时间函数C 如何获得带空格的字符串输入,并将其放在单独的变量中?,c,C,我被这个卡住了,我不知道什么时候设置输入。示例->“LEMON TREE”(在那里我设置了(输入)来读取它的双时间函数getline),它给了我错误的输出,如“LEMON TREE”,下面我将进一步解释,问题是如何更改getline(我修改过的函数)的代码并单独获得输出,这是我的函数getline,这是我想要的。 我使用k&r-ansii手册中的函数(稍加修改): 输入:LEMON TREE//这是一行输入,如您所见。 输出:第1行:柠檬树第2行:E 我需要在代码中更改什么 当我在标题中写get
getline
),它给了我错误的输出,如“LEMON TREE”,下面我将进一步解释,问题是如何更改getline
(我修改过的函数)的代码并单独获得输出,这是我的函数getline
,这是我想要的。
我使用k&r-ansii手册中的函数(稍加修改):
输入:LEMON TREE//这是一行输入,如您所见。
输出:第1行:柠檬树第2行:E
更新:我想更改我的函数,使其可以处理两个以上的单词(使其通用)。您还需要检查空格(例如空格)以确定单词的结尾
for ( i =0;i<len-1 && (c = getchar()) != EOF && c!='\n' && c!=' ';i++) {
*line++ = c;
}
别忘了编辑函数的返回值(我用于指定无法以任何其他方式返回的值(通常负值表示计数时出错):
也
应该简单地用
*line = '\0'; //every string needs to be finalized
至于第二个问题,根据stdio.h不包含getline函数1)
charline_1[10]代码>-->字符行_1[16]代码>,柠檬树
(10个字符)+NUL(1个字符)。需要大小>=112),因为GNU库(
)(或POSIX)已经存在。使用不同的名称。为什么getline函数会显示错误消息?我只#include我设置了if(c='\n'){i++;*line++='\n'..,因为如果c==EOF,则需要设置'\n',和'\0';
for ( i =0;i<len-1 && (c = getchar()) != EOF && c!='\n' && c!=' ';i++) {
*line++ = c;
}
while (getline(line_1, 10)!= -1) {
printf("line_1: %s ", line_1);
}
if ((c == EOF) ||(c == '\n')) {
i = -1;
}
if ( c == '\n')
{
i++;
*line++ = '\n';
*line = '\0';
}
*line = '\0'; //every string needs to be finalized