gpt4 book ai didi

c - 在循环内获取一行输入

转载 作者:太空宇宙 更新时间:2023-11-03 23:47:53 25 4
gpt4 key购买 nike

我正在研究一个 C 编程问题。在我必须得到的问题中一行中的两个字符。我必须重复这个过程n次。考虑以下代码:

char c[100],p[100];
int n;
scanf("%d",&n);
for(int i=0; i<n; i++)
scanf("%c %c", &c[i], &p[i]);

我用这段代码得到了n的值,然后在一行中得到了c和p数组的值。但是我得到了一些意想不到的结果,我不知道原因。需要帮助。

最佳答案

scanf("%c %c", &c[i], &p[i]);

应该是

scanf(" %c %c", &c[i], &p[i]);

输入值末尾有一个换行符n所以你需要在 %c 之前放置一个空格来忽略它

注意n的值应该是n<=100否则你有数组越界访问。

确保一旦字符被扫描或有空终止字符串

char c[100] = "";
char p[100] = "";

在 C 中,一个有效的字符串应该以 null 结尾。

如果你正在寻找一个基于n的大小的VLA(可变长度数组)然后让你的数组为

scanf("%d",&n);
char c[n];
char p[n];
for(int i=0; i<n-1; i++)
scanf(" %c %c", &c[i], &p[i]);

关于c - 在循环内获取一行输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28313602/

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