- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图解决当我想在循环内获取用户输入时遇到的问题*。编辑*:问题是这样的->清除缓冲区以读取下一个输入。
这容易出错吗?
#include <stdio.h>
int main(){
char buffer[10];
while(1){
fgets(buffer,10,stdin);
// use buffer for whatever i need... THEN!
*buffer = '\n';
}
}
编辑:这是我遇到错误的代码。如果没有分配给“\n”,我得到了错误的循环计数和输入。删除这些行没有什么问题:/
#include <stdio.h>
#include <stdlib.h>
int main(){
int numbers[100];
int quant;
char buffer[10];
printf("how many numbers do i need to ask? MAX = 99\n");
fgets(buffer,10,stdin);
quant = atoi(buffer);
*buffer = '\n';
printf("%d times enter numbers! MAX 9 digit long !\n",quant);
for(int i=0;i<quant;i++){
printf("%d. number: ",i);
fgets(buffer,10,stdin);
numbers[i] = atoi(buffer);
*buffer = '\n';
}
printf("Numbers: \n");
for(int i=0;i<quant;i++){
printf("%d ",numbers[i]);
}
edit2:错误是基于内存溢出以及 fgets 处理输入的方式。
#include <stdio.h>
int main(){
int ch;
char buffer[10];
for(int i=0; i<3; i++){
fgets(buffer,10,stdin);
printf("%s -- %d. time\n",buffer,i+1);
//while ((ch = getchar()) != '\n' && ch != EOF);
*buffer= '\n';
}
return 0;
}
如果我输入的数字超过 9 个(这是我不小心输入的),则跳转到下一个循环。如果我用 while 循环清除缓冲区,那么就不会发生任何错误。*buffer = '\n' 无用,无意义...
最佳答案
根据上下文,代码处理字符串。因此,空(已清除)缓冲区是包含空字符串的缓冲区。
所以你应该写
buffer[0] = '\0';
如果您的意思是函数 fgets
读取空字符串,那么在这种情况下,空(已清除)缓冲区可能如下所示
buffer[0] = '\n';
buffer[1] = '\0';
关于c - 在 c 中的循环内获取用户输入时,通过将 char * buffer 分配给 '\n' 来清除缓冲区是错误的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46154221/
此时,程序显示两种选择并打印一条语句,表明用户赢了、计算机赢了还是平局。继续玩直到用户选择停止,然后打印用户赢的次数,损失, 和关系. import java.util.Scanner; import
我想在 d3.js 中制作一个条形图,每个项目或行都有正条和负条,如下所示: 它有点像谷歌金融“行业摘要”图表(http://google.com/finance) 任何人都可以指出我这种图表的 d3
尝试根据 GF 和 GA 创建一个新列“Results”。想知道如何通过定义函数和条件语句来做到这一点。以下是我对一行的初步尝试,但无法弄清楚如何将其应用于所有行,非常感谢您的帮助! 日期地点对手GF
我对 Java 还很陌生,并且有一项任务被困住了。我相信我的 boolean 函数是正确的,但是我不知道在主函数中要写什么。 这是作业: 编写一个公共(public)函数(静态方法)winner(in
使用掷骰子游戏中的 10,000 次模拟来计算获胜概率 (wins/(wins + Loss))。下面是双骰子游戏的方法: public class CrapsGame { public st
我是一名优秀的程序员,十分优秀!