#include <stdio.h>
int main()
{
int a;
printf(scanf("%d",&a));
return 0;
}
我收到æ¤æ¶ˆæ¯â€œåˆ†æ®µé”™è¯¯ï¼ˆæ ¸å¿ƒå·²è½¬å‚¨ï¼‰â€
ç”案 0 :(得分:5)
printf()
å‡½æ•°çš„æ ¼å¼ä¸ºï¼š-
printf(const char *format, ...)
您必须æä¾›å—ç¬¦ä¸²ï¼ˆå¸¦æœ‰æ ¼å¼è¯´æ˜Žç¬¦çš„æ ¼å¼å—符串)作为函数printf()
çš„å‚数。
您å¯ä»¥å°è¯•ï¼š-
printf("%d",scanf("%d",&a)); // with format string
如果扫ææˆåŠŸï¼Œå°†æ‰“å° 1 。这里的%d
ä»¥æ ¼å¼å—符串用于integer
å‚数。
è¦è¯»å–和打å°å˜é‡a
,请å°è¯•ï¼š-
scanf("%d",&a); // reading
printf("%d",a); // printing
ç”案 1 :(得分:2)
阅读您的编译器è¦å‘Šã€‚
{
"categories": {
"categories": [
{
"code": "code",
"name": "name"
}
]
}
}
prog.c:8:12: warning: passing argument 1 of ‘printf’ makes pointer from integer without a cast [-Wint-conversion]
printf(scanf("%d",&a));
^~~~~
希望将å—符串作为第一个å‚数。您è¦ç»™å®ƒä¸€ä¸ªæ•´æ•°ã€‚
ç”案 2 :(得分:1)
您è¦æ‰“å°'a'ï¼Œå› æ¤æ‚¨åº”è¯¥è¿™æ ·åš
scanf("%d",&a);
printf("%d", a);
scanf()
返回写入his answerçš„å—符总数
ç”案 3 :(得分:1)
scanf
æŸ¥çœ‹æ‚¨çš„æ ¼å¼å—符串,看到%d
并将其与int
一起æ供的&a
的地å€ã€‚如果å°è¯•è¯»å–值时å‘生错误,scanf
将返回EOF
,å¦åˆ™å°†ä»¥int
çš„å½¢å¼æˆåŠŸåŒ¹é…项的数é‡ã€‚例如,如果键入123
,则scanf("%d", &a) == 1
为true,但是如果键入q123
,则scanf("%d", &a) == 0
为true。
printf
与scanf
ä¸€æ ·éœ€è¦æ ¼å¼å—ç¬¦ä¸²ï¼Œå¹¶ä¸”ä½¿ç”¨è¯¥æ ¼å¼æ¥æ‰“å°å‚æ•°çš„å€¼ã€‚å®ƒæ— æ³•çŸ¥é“scanf
æ‰€ä½¿ç”¨çš„æ ¼å¼ä¹Ÿä¸Žæ‚¨è¦ç”¨äºŽæ‰“å°çš„æ ¼å¼ç›¸åŒï¼Œå¹¶ä¸”您没有æ供一个å—符串,它是一ç§æŒ‡é’ˆï¼Œå…¶ä¸åŒ…å«ç”¨äºŽæ‰“å°å‚æ•°çš„æ ¼å¼ã€‚这是您的代ç å˜åœ¨çš„问题。
å¯ä»¥å°†æ•´æ•°ï¼ˆä¾‹å¦‚int
返回的scanf
值)转æ¢ä¸ºæŒ‡é’ˆï¼Œè€Œæ— 需告诉编译器执行转æ¢ã€‚结果,编译器å¯èƒ½ä¼šæŠ±æ€¨æ‚¨æ£åœ¨åšä¸€äº›æ½œåœ¨çš„问题(<è¦å‘Š>:è¦å‘Šï¼šä¼ 递'printf'çš„å‚æ•°1使指针从整数转æ¢è€Œæ— 需强制转æ¢ï¼‰ï¼Œä½†æ˜¯è¯¥ä»£ç 将被å…许编译然åŽæ‰§è¡Œã€‚
å½“æ‚¨çœ‹åˆ°è¿™æ ·çš„è¦å‘Šæ—¶ï¼Œè¯·æŸ¥çœ‹è¯¥å‡½æ•°å¯¹è¯¥å‚æ•°è¦æ±‚的类型以åŠç”¨ä½œè¯¥å‚数的值的类型。编译器试图帮助您é¿å…出现类似printf(scanf("%d", &a));