我正在使用Eclipse在C / C ++中进行编码,而且我正在努力处理可能非常简单的事情。 在我的代码下面我使用printf()和scanf() 。 在scanf()之前写入的是printf ,输出不同。 我能够在这里find类似的问题。 但我无法解决它。 有任何想法吗? 码: #include <stdio.h> int main() { int myvariable; printf("Enter a number:"); scanf("%d", &myvariable); printf("%d", myvariable); return 0; } 预期产出: Enter a number:1 1 相反,我得到: 1 Enter a number:1
我是编程的一个小菜鸟。 我只想问下面的代码有什么问题: scanf("%i", &battlechoice); printf("BCHOICE WAS:%i\n", battlechoice); if (battlechoice=4) //fleeing { fleechance=rand() % 100; if (fleechance <= 49) { printf("You attempt to flee…\n"); sleep(2000); printf("Oh dear! You failed to flee! Gamover!\n"); printf("Thank you for playing! -Anthony\n"); sleep(7000); exit(0); } else { printf("You succeeded in fleeing! You will be returned to town\nshortly…\n\n\n\n\n"); sleep(3000); break; } } […]
我错误地使用了scanf("%d\n",&val); 在我的一个程序中,我无法理解行为,functionperformance出来。 int main(){ int val; scanf("%d\n", &val); printf("%d\n", val); return 0; } 现在程序需要2个整数input,并打印input的第一个input。 那额外的\n带来了什么区别? 我试图search,但无法find答案,即使通过手动scanf 。
#include "stdio.h" int main(void) { int order, nextp, N=3; char cont; nextp = 0; printf("\nShould we continue (y or n): "); scanf("%c", &cont); if (cont != 'y') return; for(; nextp < N; nextp++) { printf("Enter order number: "); scanf("%d", &order); printf("you have entered %d\n", order); printf("okay now continue with cont\n"); printf("enter cont y or n: […]
就printf函数而言,我从less数参考和实验中了解以下内容。 当我们试图打印一个整数值与格式说明符用于浮动(或)双和反之亦然行为是不可预知的 。 但可以使用%c来打印整数值的字符。 也可以使用%d来打印字符的ASCII值(整数表示)。 类似地,如果格式说明符和传递给scanf的参数不匹配 , scanf的行为是什么。 标准是否定义了它?
我正在尝试: – 如果用户input无效值,则重新读取值。 但问题是scanf()只执行一次,不会执行任何其他的时间和程序卡住无限循环。 #include<stdio.h> #include<math.h> main() { unsigned int a; unsigned int b = pow(2,M-1); unsigned int c; int x; printf("b = %i",b); input: fflush(stdin); fflush(stdout); printf("\nEnter any integer: "); x = scanf("%u",&a); printf("%u",a); if(x==0) goto input; printf("\na = %i",a); c = a & b; printf("\nc = %i",c); if(c) printf("\nthe bit %i is set",M); […]
我开始使用C语言。 我使用eclipse(juno)作为我的IDE并安装了CDT插件。 我也解开了mingw64(GCC编译器)。 我写了一个非常简单的程序来看看它是否工作。 这是我的代码: #include <stdio.h> int main() { int age; printf("Hello, please enter your age:\n"); scanf("%d", &age); printf("Your age is %d", age); return 0; } 问题在于输出缓冲区中填充了第一个printf的string值,但不会将其输出到控制台。 我必须input一个数字,然后缓冲区才会把所有的数据传送到控制台,所以我看到控制台是这样的: 1 Hello, please enter your age: Your age is 1 而不是预期的是: Hello, please enter your age: 1 Your age is 1 现在,我发现我可以在第一个printf之后使用fflush(stdout) ,但我不认为这个解决scheme是优雅的,甚至是必要的。 关于如何克服这个问题的任何想法? 编辑 – […]
我想读取用户input的string。 我不知道string的长度。 由于在CI中没有string声明一个指针: char * word; 并使用scanf从键盘读取input: scanf("%s" , word) ; 但是我得到了一个分段错误。 当长度未知时,如何从C中的键盘读取input?
我正在寻找一个相当于Python中的sscanf() 。 我想parsing/proc/net/*文件,在CI可以做这样的事情: int matches = sscanf( buffer, "%*d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %*X %*X:%*X %*X:%*X %*X %*d %*d %ld %*512s\n", local_addr, &local_port, rem_addr, &rem_port, &inode); 我首先想到了使用str.split ,但是它不会在给定的字符上分割,而是整个sepstring: >>> lines = open("/proc/net/dev").readlines() >>> for l in lines[2:]: >>> cols = l.split(string.whitespace + ":") >>> print len(cols) 1 如上所述,应该返回17。 是否有一个相当于sscanf的Python(不是RE),还是标准库中的一个string分割函数,它在我不知道的任何字符范围内进行分割?
我需要阅读一个string,直到下面的序列被写入:\ nx \ n: (…..)\n x\n \ n是新行字符,(…..)可以是任何可能包含其他\ n字符的字符。 scanf允许正则expression式,据我所知,但我不能让它读取一个string,直到这种模式。 你能帮我使用scanf格式的string吗? 我正在尝试像这样的东西: char input[50000]; scanf(" %[^(\nx\n)]", input); 但它不起作用。