gpt4 book ai didi

c - scanf 由于 gets 函数而无法正确读取

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

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(){
int n=1,i,cont;
char string[50];

scanf("%d",&n);
while(n!=0){
gets(string);
cont=0;
for(i=0;i<strlen(string);i++){
if(string[i]=='.'){
cont++;
}
}
if(cont%2==0){
printf("S\n");
}else{
printf("N\n");
}
scanf("%d",&n);
}
return 0;
}

我的问题很简单但很麻烦,我想读取一个整数值n,然后读取一个字符串,然后再次读取n,但是每当我运行程序时,它只读取字符串值...但是如果我数字 0 程序结束...就像我的 scanf 在 gets 函数中一样。

最佳答案

scanfgetsfgets 混合使用会很麻烦,因为它们处理换行符的方式不同。

摆脱 gets 调用(无论如何都是不安全的)并将其替换为以下 scanf 调用:

scanf("%49s", string);

这将最多将 49 个字符读入字符串(即比其大小少一个)。

关于c - scanf 由于 gets 函数而无法正确读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43701859/

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