c語言scanf輸入字元串
『壹』 c語言 如何從鍵盤輸入字元串
c語言從鍵盤輸入字元串的步驟如下:
1.首先我們新建一個dev C++的項目。
『貳』 c語言scanf輸入時為什麼不能用逗號隔開
c語言scanf輸入時能用逗號隔開,但是輸入數據的時候一定也要加上逗號。用scanf()讀取數據時,輸入的格式必須和scanf()的格式控制字元串對應。
對於標准輸入函數scanf來說,括弧內的格式字元串,也就是由" "中的部分,除了%引導的格式字元之外,所有的其他字元必須在輸入數據時原樣原位置輸入。例如:
scaf("%d,%d",&a,&b);
兩個%d之間的逗號就是普通字元,它必須在你輸入a和b的值的時候,也輸入到ab之間。輸入如下:
5,6
如果不輸入逗號,或者輸入空格,輸入均不會正確。
(2)c語言scanf輸入字元串擴展閱讀:
scanf函數返回成功讀入的數據項數,讀入數據時遇到了「文件結束」則返回EOF。
如:scanf("%d%d",&a,&b);
函數返回值為int型。如果a和b都被成功讀入,那麼scanf的返回值就是2;
如果只有a被成功讀入,返回值為1;
如果a和b都未被成功讀入,返回值為0;
如果遇到錯誤或遇到end of file,返回值為EOF。end of file為Ctrl+z 或者Ctrl+d。
『叄』 c語言中的scanf_s怎麼輸入字元各字元串
首先scanf_s不是標準的C函數,它是VC特有的
字元串的話,用%s就可以了
如
char w[81];
scanf_s("%s",w,80);
『肆』 scanf輸入字元串會不會讀取回車
不會。
scanf()是C語言中的一個輸入函數。形式:intscanf(constchar*restrictformat,...);
format指向的字元串包含的格式指令中的s讀入一個的字元序列,後面會加上空位元組,遇到空白字元( 空格等)完成讀取。
scanf輸入字元串的時候不會接收Space空格,回車Enter,Tab鍵,則認為輸入結束。scanf函數直接從輸入緩沖區中取數據,而並非從鍵盤(也就是終端)緩沖區讀取。而讀取時遇到回車( )而結束的,這個 會一起讀入輸入流緩沖區的,所以第一次接受輸入時取走字元後會留下字元 。
(4)c語言scanf輸入字元串擴展閱讀:
注意問題
(1)在高版本的 Visual Studio 編譯器中,scanf 被認為是不安全的,被棄用,應當使用scanf_s代替 scanf。
(2) 對於字元串數組或字元串指針變數,由於數組名可以轉換為數組和指針變數名本身就是地址,因此使用scanf()函數時,不需要在它們前面加上"&"操作符。
(3) 可以在格式化字元串中的"%"各格式化規定符之間加入一個整數,表示任何讀操作中的最大位數。
(4) scanf函數中沒有類似printf的精度控制。
如: scanf("%5.2f",&a); 是非法的。不能企圖用此語句輸入小數為2位的實數。
(5) scanf中要求給出變數地址,如給出變數名則會出錯
如 scanf("%d",a);是非法的,應改為scanf("%d",&a);才是合法的。
(6) 在輸入多個數值數據時,若格式控制串中沒有非格式字元作輸入數據之間的間隔,則可用空格,TAB或回車作間隔。
C編譯在碰到空格,TAB,回車或非法數據(如對「%d」輸入「12A」時,A即為非法數據)時即認為該數據結束。
(7) 在輸入字元數據(%c)時,若格式控制串中無非格式字元,則認為所有輸入的字元均為有效字元。
網路-scanf
『伍』 C語言怎麼用scanf輸入字元串。
你的意思是輸入多餘的字元吧?
1、因為你用scanf輸入的字元都是輸入到緩沖區中的,例如你定義了一個只接受一個字元的變數ch,但卻輸入了多餘的字元,這種情況會給編譯器造成困擾,因為他並不完全智能,通常採用這種方法釋放掉緩沖區內多餘的字元輸入;例如:
2、char ch;
scanf("%c", &ch);//假如你不小心輸入了多個字元
//解決方法如下
while (『\n』 != getchar())
{continue;}//這里的原理一不斷的用getchar讀取緩沖區內的字元,並將其廢棄掉,直到遇到你輸入的回車符(當然也可以是別的輸入結束符);
『陸』 C語言中 用scanf函數輸入字元串數組,取地址符&是不用輸的,如果輸了取地址符算錯么 ,或者含義不一樣么
一般變數使用取地址符,是獲取其地址,即為指向該變數的指針。
數組名就是數組的首地址,指向該數組的第一個元素的指針,只不過是常量指針而已。所以不用再加取地址符。
要加的話可以如下:
char str[10];
scanf("%s", &str[0]); // 取第一元素的地址,等價於數組名 str
『柒』 C語言中的scanf是什麼意思
scanf()是C語言中的一個輸入函數。
與printf函數一樣,都被聲明在頭文件stdio.h里,因此在使用scanf函數時要加上#include <stdio.h>。(在有一些實現中,printf函數與scanf函數在使用時可以不使用預編譯命令#include <stdio.h>。)
函數 scanf()是格式輸入函數,即按用戶指定的格式從鍵盤上把數據輸入到指定的變數之中。scanf() 從標准輸入流stdin中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。
(7)c語言scanf輸入字元串擴展閱讀:
scanf()用法舉例:
用scanf輸入一個整數
#include<stdio.h>
int main(){
int num=0;
printf(「請輸入一個個整數」);
scanf(「%d,&num);
printf(「num是%d 」,num);
scanf(「%*[^ ]」);
scanf(「%*c」);//清空緩沖區
printf(「請輸入一個個整數」);
scanf(「%d,&num);
printf(「num是%d 」,num);
return 0;
}
參考資料來源:網路-scanf
『捌』 c語言用scanf輸入字元串
有了char a[10];,那麼a就是這個數組的第一個元素的指針,&a就是這個數組的指針;因為一維數組的第一個元素的指針和這個數組的指針是同一個地址,區別是a+1指向a[1],而&a+1就指向a[10]了(這里已越界了)。但&a和a的"值"是相同的,只是類型不同。C調用函數時,實參的類型都會被強制為形參的類型,scanf("%s", &a)或scanf("%s", a)中要求參數是char *型指針,那麼&a盡管是char **類型,但被強行轉換為char *型了……
『玖』 c語言scanf輸入用法
scanf 函數最主要的用法是:
scanf("輸入控制符", 輸入參數);
函數原型:intscanf(constchar*restrictformat,...);
函數 scanf() 是從標准輸入流stdin (標准輸入設備,一般指向鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。
(9)c語言scanf輸入字元串擴展閱讀:
函數的第一個參數是格式字元串,它指定了輸入的格式,並按照格式說明符解析輸入對應位置的信息並存儲於可變參數列表中對應的指針所指位置。每一個指針要求非空,並且與字元串中的格式符一一順次對應。
發展:
使用scanf函數進行輸入,必須指定輸入的數據的類型和格式,不僅繁瑣復雜,而且很容易出錯。C++保留scanf只是為了和C兼容。
以便過去用C語言寫的程序可以在C++的環境下運行。C++的編程人員都願意使用cin進行輸入,很少使用scanf。
但是scanf有一個明顯的優點,速度比cin函數快。
『拾』 C語言用如何用scanf輸入帶有空格的字元串
要輸入帶空格的字元串,要用到一個格式字元:%[] --> 一個字元集。
「%[]」的作用是掃描字元集合:
例如:scanf(「%[^
]」,str);
具體作用是:如果輸入的字元屬於方括弧內字元串中某個字元,那麼就提取該字元;如果一經發現不屬於就結束提取。該方法會自動加上一個'