gets和scanf的區別。

2021-05-25 21:51:28 字數 1085 閱讀 4521

寫乙個函式,輸入乙個十六進製制數,輸出相應的是進製數。

程式設計如下:

#include

#include

#include

void main()

char t[20],c;

long htoi(char );

doprintf("/ninput a hex number:");

gets(t);

printf("decimal number:%ld/n",htoi(t));

printf("continue or not?(y/n)");

scanf(" %c",&c);

}while(c=='y'||c=='y');

getch();

long htoi(char a)

int i;

long n=0;

for(i=0;iif(a[i]>='0'&&a[i]<='9')

n=n*16+a[i]-'0';

else if(a[i]>='a'&&a[i]<='f')

n=n*16+a[i]-'a'+10;

else if(a[i]>='a'&&a[i]<='f')

n=n*16+a[i]-'a'+10;

return(n);

執行:input a hex number:a11

decimal number:2577

continue or not?(y/n)y

input a hex number:decimal number:0

continue or not?(y/n)

紅色為輸入,其他為程式自行輸出。

將程式中接收輸入的十六進製制字元的語句gets(t);改為scanf("%s",t);後程式正常。

input a hex number:a11

decimal number:2577

continue or not?(y/n)y

input a hex number:10

decimal number:16

continue or not?(y/n)

不知道gets和scanf有什麼區別。

scanf和gets的區別

gets函式可以一次接收一行輸入串,其中可以有空格,也就是說空格可以做為字串的一部分輸入.而scanf函式接收的字串不會含有空格,即遇到字空格時,認為字串輸入結束,也就是說空格是scanf預設的結束符號。scanf和gets不能混合使用,如果乙個程式中用scanf的話,一般不能再用gets,反之亦然...

gets和scanf的區別

1 gets 函式原型 char gets char str 功能為 從stdin流中讀取字串,直至接受到換行符或eof時停止,並將讀取的結果存放在buffer指標所指向的字元數 組中。換行符不作為讀取串的內容,讀取的換行符被轉換為 0 空字元,並由此來結束字串。注意 不會判斷上限,以回車結束讀取,...

gets和scanf的區別

函式 gets 字元指標 標頭檔案 stdio.h c中 c 不需包含此標頭檔案 原型 char gets char buffer 功能 從stdin流中讀取字串,直至接受到換行符或eof時停止,並將讀取的結果存放在buffer指標所指向的字元陣列中。換行符不作為讀取串的內容,讀取 接受 的換行符被...