① c語言如何從字元串中讀入字元
在scanf函數中,可以使用%c來讀取一個字元,使用%s讀取一個字元串, 但是讀取字元串時不忽略空格,讀字元串時忽略開始的空格,並且讀到空格為止,因此只能讀取一個單詞,而不是整行字元串。
其實scanf函數也可完成這樣的功能,而且還更強大。這里主要介紹一個參數,%[],這個參數的意義是讀入一個字元集合。[]是個集合的標志,因此%[]特指讀入此集合所限定的那些字元,比如%[A-Z]是輸入大寫字母,一旦遇到不在此集合的字元便停止。如果集合的第一個字元是"^",這說明讀取不在"^"後面集合的字元,既遇到"^"後面集合的字元便停止。注意此時讀入的字元串是可以含有空格的,而且會把開頭的空格也讀進來。
② C語言字元串怎麼讀
正讀:scanf("%s",a+1); 這樣就從a[1]開始
倒讀:for(int i=N-1;i>0;i--) //N是你數組的長度或者比數組長度小的常
{ //量,i>0也就是到a[1]結束
scanf("%c",a+i); //因為倒過來,所以一個一個元素往裡放
}
a[N]='/0'; //別忘了數組最後一個元素是0
理解scanf()的運作方式:每次輸入都從緩沖區讀取一定的內容.
比如如果是%c,那麼從緩沖區讀取1個位元組.如果你輸入了"abcd"那麼先把'a'放進去,然後第二次循環把'b'放進去以此類推.
③ 在C語言中編譯器是如何讀取字元的
同學,你這個問題只需要加一個getchar();在scanf()後面就可以了
#include<stdio.h>
main()
{
inti,n;
printf(". ");
printf("enternumberofentriesintable:");
scanf("%d",&n);getchar();
for(i=1;i<=n;i++)
{
printf("%10d%10d ",i,i*i);
if(i%24==0)
{
printf("Pressentertocontinue... ");
while(getchar()!=' ')
printf("Pressentertocontinue... ");
}
}
鍵擾return(0);
}
原因是:你輸入數字然後按回車,這些輸入是存儲到租雀緩存中的,你可以把緩存想像成一個數組,而scanf("%d",&n);只讀弊亮早取了數字,所以' '還保留在緩存數組中,你只要用getchar();把' ' "吸收"了,就可以了
④ C語言中讀取一個字元
getch和getche都是讀入單個字元的,不同的是getch不會將讀書的輸出來,而getche就會再把它輸出到屏幕上。
比如你用getch讀入,按了鍵以後屏幕上沒有輸出,但是實際上已經讀入了。而getche會把你剛按的再輸出來。
getchar則是讀入字元串的。
⑤ c語言 如何讀取中文字元串
可以使用輸入輸出重定向來將TXT文本中的字元內容導入程序中,或者使用標准C庫函數:fopen()和fgetc();
先使用fopen()函數打開TXT文本文件,然後使用fgetc讀取文本文件中的字元。讀取全部文本中全部字元可以使用一個while循環加判斷是否讀取到文件結尾來實現:
char ch;
while((ch= fgetc(fp)) != EOF)
這樣當讀取到文件結尾時,while循環就會終止。
C語文編寫編譯如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLINE 100000
#define BUFLEN 1024
int main()
{
FILE *file;
char buf[BUFLEN];
int len=0,i=0;
char *array[MAXLINE];
file=fopen("test.txt","r");//打開TXST.TxT文件
if(!file)return -1;
while(fgets(buf,BUFLEN,file))//讀取TXT中字元
{
len=strlen(buf);
array[i]=(char*)malloc(len+1);
if(!array[i])break;
strcpy(array[i++],buf);
}
fclose(file);
i--;
while(i>=0&&array[i])
{
printf("%s\n",array[i]);//列印test文檔的字元
free(array[i--]);
}
}
⑥ C語言中怎樣讀取一行字元中的一個字元
int getchar ( void );
讀取一個字元. 結果是 int 型
循環讀,就可以襲則讀取一行字元中的宏襲每一個字元。
也可以用 gets 讀入 一整行字元, 結果存入 char 數組, char 數組中的每一個單個字元 可以 看拍絕棚成 一位元組 整數。
⑦ c語言中怎樣才能讀出文件中的所有字元
用fread函數 可以整塊讀取。
用fgets函數 可以整行讀取
用fgetc函數,可以單個字元讀取。
根據需求,使用對應函數,同時配合循環
就可以讀取整個文件了。
比如 如果fp為文件指針。
那麼
int c;
while((c = fgetc(fp)) != EOF);
這樣就可以遍歷整個文件了。
⑧ C語言中如何將文件中的某行的字元串讀取出來
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#defineMaxCols2000//設定每行字元數不超過MaxCols,根據變化調整
//獲取已經打開文件fp的第line行內容到stri,如果成功返回得到的位元組數,
//如果沒有那麼多行,返回-2
intgetlinetxt(FILE*fp,intline,char*stri){
inti;
fseek(fp,0,0);//指針到文件最開始
for(i=0;i<line;i++)
if(fgets(stri,MaxCols,fp)==NULL)//沒有這么多行錯誤
return-2;
returnstrlen(stri);
}
//獲取filename文件的第line行內容到stri,如果成功返回得到的位元組數,
//如果打開文件失敗,返回褲型-1,如果沒有那麼多行,返侍返回-2
intgetfiletxt(char*filename,intline,char*stri){
FILE*fp;
if((fp=fopen(filename,"r"))==NULL){
//打開文件錯誤,返回-1
return-1;
}
returngetlinetxt(fp,line,stri);
fclose(fp);
}
intmain(){
chars[MaxCols];
introw=10,flag;
//以下例子是獲取d: emp.txt的第10行文本內容
flag=getfiletxt("d:\temp.txt",row,s);
if(flag==-1)
printf("打開文件錯誤 ");
else胡談猜if(flag==-2)
printf("文件中的行數不足%d行 ",row);
else
printf("獲取到的文本是: %s包含最後的換行符,長度=%d ",s,flag);
}
⑨ C程序,如何從指定文件中讀取一個字元串
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char cl[100];
if((fp=fopen("1.txt","r"))==NULL)
exit(1);
while(fscanf(fp,"%s",cl)==1)
printf("%s
",cl);
if(fclose(fp)!=0)
exit(1);
return 0;
}
C語言是目前世界晌老御上流行、使用最廣泛的面向過程的高級程序設計語言。 C語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它高級語言宴岩,許含雀多大型應用軟體都是用C語言編寫的。
⑩ C語言中怎麼輸入字元串並從中逐一讀取字元
#include<stdio.h>
#include<string.h>
intmain()
{
charpara[100];
inti,k;
/*scanf("%c",para);//%c是單個字元。。。
k=scanf("%c",para);
while(k!=EOF)
scanf("%c",para);
printf("theinputwords: ");
for(i=strlen(para);i>=0;i--)
printf("%c",para[i]);
*/
i=0;
scanf("%c",¶[i]);
while(para[i]!='-')//以輸入-(負)號為字元串輸入的結束符
{
i++;
scanf("%c",¶[i]);
}
k=i;//k是字元串的長度
for(i=k-1;i>=0;i--)//字元串的倒序輸出
printf("%c",para[i]);
printf(" ");
return0;
}
試試上述代碼,我調試過了。。。。