gpt4 book ai didi

c - 为什么打印语句之间有间隙?

转载 作者:行者123 更新时间:2023-11-30 17:18:23 25 4
gpt4 key购买 nike

我正在尝试解析输入并将它们存储在字符串数组中。因此,如果用户输入 {"hello world | foo bar"} 我会根据空格以及是否有 | 进行解析或 eof 我存储一个 null。一旦我完成解析并想使用以下方法检查存储的 token :

while(i < j) {
printf("%s\n", args[i]);
i++;
}

输出类似于

hello
world
(null)
foo

bar
(null)

那么这个差距是怎么回事?

最佳答案

首先,您需要确保您真正测量的是输出,而不是输入和输出的组合。最简单的方法是将输出重定向到文件。假设你的程序名称是“a.out”

 a.out > output.txt

或等效的内容将为您提供一个仅包含输出的文件。如果它与您发布的内容完全相同,那么您就知道这不是您的控制台/终端试图绘制您正在键入的回车符和换行符,而是控制台试图绘制回车符和换行符程序正在打印。

一旦您很好地掌握了哪个输入/输出流正在打印什么内容,请记住 if args[i]包含 \n换行符,它将打印出来,就像它包含单词 hello 一样。您可能必须寻找换行符的来源,并在那里纠正它。一个简单的方法是抑制打印 if args[i]匹配不需要的文本;然而,在非玩具程序中通常要避免这种技术,因为它最终会导致变量中存在错误数据,这意味着随着时间的推移,维护变得更加困难(如果不是不可能的话)。

关于c - 为什么打印语句之间有间隙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29190635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com