① c語言判斷入門問題,如何接受輸入不同的字母
你好,其本質,字母都是ascii數字,在ascii中,大寫字母的范圍是0x41到0x5A,小寫字母的范圍是0x61到0x7A,比如你想控制只接受輸入的大寫字母,那麼
charc;
c=getchar();
if(c<=0x5A&&c>=0x41)
{
//...
}
即可
如果你記不得這些數字,其實更簡單的辦法就是直接引用字母
charc;
c=getchar();
if(c<='Z'&&c>='A')
{
//...
}
辛苦打來,望採納!
② C語言控制台程序怎麼接收鍵盤輸入的漢字
C語言控制台程序怎麼接收鍵盤輸入的漢字
漢字是字 一個字是兩個位元組 所以只能用char [] 需要用數組來存放漢字
③ C語言編程:下面程序接受鍵盤上的輸入,直到按↙鍵為止,這些字元被原樣輸出,但若有連續的一個以上的空格
main ( )
{
char cx , front=』\0』 ;
while (front!=』\n』) {
if (cx!=』 』) putchar(cx) ;
if (cx==』 』)
if (front!=' ')
putchar(' ');
front=cx ;
}
④ C語言如何實現接受用戶輸入,如果按下crlt+w,組合鍵,就會出現hello ,按其他的退出
#include<cstdio>
intmain()
{
charch;
ch=getchar();
if(ch==23)
{
printf("Hello ");
}
else
{
return0;
}
}
⑤ 怎麼使C語言程序在後台運行並接收鍵盤輸入
#include<stdio.h>
#include<stdlib.h>
#define SIZE 4
struct student
{
char s_num[10];
char s_name[20];
char sex[2];
int age;
}stu[SIZE];
void input()
{
int i;
for(i=0;i<SIZE;i++)
{
printf("請輸入第%d個學生的數據內容:學號,姓名,性別(男:M,女F),年齡\n",i+1);
scanf("%s%s%s%d",stu[i].s_num,stu[i].s_name,stu[i].sex,&stu[i].age);
}
}
void save()
{
int i;
FILE *fp;
if((fp=(fopen("c:\\stu_list.txt","wb")))==NULL)
{
printf("can not open file:stu_list!\n");
exit(0);
}
for(i=0;i<SIZE;i++)
{
if((fwrite(&stu[i],sizeof(struct student),1,fp))!=1)
{
printf("write error!\n");
fclose(fp);
exit(0);
}
}
fclose(fp);
}
void main()
{
input();
save();
}
關鍵錯誤在於:fclose(0);
應該改為 fclose(fp);
另外,團IDC網上有許多產品團購,便宜有口碑
⑥ 用C語言編寫:接受用戶從鍵盤輸入的兩個字元,然後輸出他們的代碼
1
用getchar輸入兩個字元。
2
用%d的格式,同過printf輸出ascii碼值。
3
計算平方和,並利用sqrt求平方根。
4
輸出平方根。
代碼:
#include
#include
int main()
{
char a,b;
int c;
double r;
a = getchar();
b = getchar();
printf("%d %d ", a, b);
c = a*a + b*b;
r = sqrt(c);
printf("%lf\n", r);
}
⑦ c語言for循環接受輸入 求大神!!
scanf輸入, 其實是從一個輸入流裡面,就一個管子,讀數據的, 當你輸入字母時,會進入輸入流中,如果不匹配就會還在輸入流中, 下次再輸入時, 還是前面那個字母
你else裡面加個 getchar();語句 把你輸入的字母過濾掉
⑧ c語言如何接受用戶輸入回車
用 fgets(str,80,stdin);
str 字元串尾將包含new-line符號。
#include <stdio.h>
void main()
{
char str[80];
printf("please enter string includes new line\n");
fgets(str,80,stdin);
printf("|%s|",str);
}
輸入的字元串應當在|和|之間,從列印結果,你可以看到換了新行,說明包含了'\n'
⑨ c語言怎樣接受按行輸入的一段用空格分開的數字
在 scanf 中,從鍵盤輸入的一切數據,不管是數字、字母,還是空格、回車、Tab 等字元,都會被當作數據存入緩沖區。存儲的順序是先輸入的排前面,後輸入的依次往後排。按回車鍵的時候 scanf 開始進入緩沖區取數據,從前往後依次取。但 scanf 中 %d 只識別「十進制整數」。對 %d 而言,空格、回車、Tab 鍵都是區分數據與數據的分隔符。當 scanf 進入緩沖區中取數據的時候,如果 %d 遇到空格、回車、Tab 鍵,那麼它並不取用,而是跳過繼續往後取後面的數據,直到取到「十進制整數」為止。對於被跳過和取出的數據,系統會將它從緩沖區中釋放掉。未被跳過或取出的數據,系統會將它一直放在緩沖區中,直到下一個 scanf 來獲取。但是如果 %d 遇到字母,那麼它不會跳過也不會取用,而是直接從緩沖區跳出。
來自網頁鏈接
⑩ c語言scanf接收輸入並輸出的問題
int類型不是無條件的忽略回車的,當沒有接收完時,會忽略掉回車。當接收完成時,最後一個回車不會被忽略掉。
所以當再次輸入abc的時候,其實回車已經賦值給c1了。
需要c1不接收回車的話,需要再第二次scanf之前強制刷新一下緩沖區就可以了。
調用fflush(stdin);