小编Ala*_*kar的帖子

scanf(“%[^ \ n]%* c”,&s)是什么?真的吗?

我知道[^ \ n]是一个分隔符,它使scanf可以扫描所有内容,直到按下“ enter”键为止。但是我不知道其余的“%[^ \ n]%* c”是做什么用的。另外,为什么我们必须在scanf函数中提及“&s”而不是“ s”。

我尝试运行此:

char s[100];
scanf("%[^\n]s",s);      
scanf("%[^\n]s",&s);
Run Code Online (Sandbox Code Playgroud)

上面的两个scanf语句对我来说完全一样。如果它们之间有什么区别,那是什么?

另外,为什么我更喜欢 scanf(“%[^ \ n]%* c”,&s); 以上声明?

c scanf

2
推荐指数
1
解决办法
266
查看次数

如果浮点常量隐式转换为int类型,何时会溢出

我有两个代码段,并且都产生不同的结果。我正在使用TDM-GCC 4.9.2编译器,而我的编译器是32位版本

(int的大小为4个字节,float的最小值为-3.4e38)

代码1:

int x;
x=2.999999999999999; // 15 '9s' after decimal point
printf("%d",x);
Run Code Online (Sandbox Code Playgroud)

输出:

2

代码2:

int x;
x=2.9999999999999999; // 16 '9s' after decimal point
printf("%d",x);
Run Code Online (Sandbox Code Playgroud)

输出:

3

为什么在这些情况下隐式转换会有所不同?

是否由于指定的Real常量中的某些溢出而引起的,怎么办?

c implicit-conversion

0
推荐指数
1
解决办法
37
查看次数

标签 统计

c ×2

implicit-conversion ×1

scanf ×1