【发布时间】:2016-09-25 08:00:20
【问题描述】:
int main(){
char *input = NULL;
char *first = NULL;
size_t len = 100;
int count = 0;
while(getline(&input, &len, stdin)!= EOF){
if(count == 0){
first = input;
printf("------>%s, count = %d\n", first, count);//test printer
}
else{
printf("%d, %s, %s\n", count, input, first);//test printer
}
count++;
}
return 0;
}
我试图分开两部分——我输入的第一行和第一行之后的其余字符串......但我不知道为什么我不能成功地单独存储第一行。
为了停止将输入分配给第一行(第一行输入),我使用 count 来确定我应该在哪里停止,这意味着如果 count 为零,这意味着我的输入是第一行。然后在while循环中,在你输入的第二行之后,你将打印第二行,第一行......我在else语句上设置了测试打印机,我发现当我输入第二行时第一个发生了变化。这意味着当跳转到 else 语句时,首先不是打印我想要的(实际的第一行)而是与输入相同的行。
我对此感到非常困惑。为什么值变了?我应该如何将第一行值存储在单独的 char 数组中?
【问题讨论】: