c語言中跳讀
1. c語言怎樣從文件中讀一組數時,跳過第一個數,讀下面一組數據
#include<stdio.h>
intmain()
{
FILE*pfile=fopen("E:/a.txt","rt");//文本模式打開
charstrs[10];
if(pfile)
{
fseek(pfile,4,SEEK_SET);//跳過兩個字元號。
while(!feof(pfile))
{
fgets(strs,10,pfile);
printf("%s",strs);
}
}
return0;
}
2. C語言中continue的用法
continue跳過本次循環,進入下一次。break直接跳出循環。
比如For循環,遇到Contimue生效後,直接重新執行for的表達式,也就是本循環中Continue下面的語句就不執行,跳過循環中的一次。
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
(2)c語言中跳讀擴展閱讀:
其作用為結束本次循環。即跳出循環體中下面尚未執行的語句,對於while循環,繼續求解循環條件。而對於for循環程序流程接著求解for語句頭中的第三個部分expression表達式。
continue語句只結束本次循環,而不終止整個循環的執行。而break語句則是結束整個循環過程,不再判斷執行循環的條件是否成立。
3. C語言中讀取文件時怎麼跳過某行
可以使用fseek函數,直接偏移指針的指向位置到第二行。
函數原型
int fseek(FILE *stream, long offset, int fromwhere);函數設置文件指針stream的位置。如果執行成功,stream將指向以fromwhere為基準,偏移offset(指針偏移量)個位元組的位置,函數返回0。如果執行失敗(比如offset超過文件自身大小),則不改變stream指向的位置,函數返回一個非0值。
可以使用fgets函數,遇到需要跳過的行時,直接讀取該行並棄舍該行字元值。
函數原型
char *fgets(char *buf, int bufsize, FILE *stream);
參數
*buf: 字元型指針,指向用來存儲所得數據的地址。
bufsize: 整型數據,指明存儲數據的大小。
*stream: 文件結構體指針,將要讀取的文件流。
4. c語言跳轉語句有哪些
c語言跳轉語句包括四種:goto,continue,break和return。
goto 標記,goto語句是無條件轉移語句,且標記必須在當前函數中定義,使用「標記:」的格式定義。程序將跳到標記處繼續運行。由於goto(特別是向回 goto 和長距離的 goto)容易產生閱讀上的困難,所以對新手應該盡量少用。GCC 編譯器拓展支持對指針 goto和宏內 goto,一定程度上增強了 goto 的可讀性。
continue語句用在循環語句中,作用是結束當前一輪的循環,馬上開始下一輪循環。
break語句用在循環語句或switch中,作用是結束當前循環,跳到循環體外繼續運行。但是使用break只能跳出一層循環。在要跳出多重循環時,可以使用goto使得程序更為簡潔。
當一個函數運行結束後要返回一個值時,使用return。return可以跟一個表達式或變數。如果return後面沒有值,將運行不返回值。
5. 求問c語言里scanf語句中跳讀是什麼意思
6. C語言中讀取文件時怎麼跳過文件前幾行
2種方法,一種是for(i=0;i<n;i++)fgets(str);先將前一行存到一個不用的變數,然後再開始存後面的變數。
第二種方法是用fseek函數
7. C語言中怎麼跳著執行數組
你還是理解錯了
gets(ch);
是讀到一行結尾,存入ch
我猜你在gets之前,做過scanf之類的,scanf處理了數據,卻把換行符留在那裡沒有處理
所以你gets得到的就只是一個空行了。
getchar()的作用是讀一個字元,用了它之後,就剛好吃掉了那個換行符,所以gets得以順利運行。
你可以用一個while循環,反復gets,直到讀出的不是空字串。
另外一個方法是不要scanf,而是定義一個緩存,然後用gets把所有數據都讀到自己的緩存字元串中,再用sscanf從字元串而不是屏幕去讀取數據。
看你的應用場合了
8. C語言中如何讀取TXT文件中某一列的數據存放到一個一維數組中
你的 3 列 數據文件 讀第二列,可用 格式: "%*d %lf %*lf"
程序:
#include<stdio.h>
int main()
{
FILE *fin;
double a[200]; //數組大小要足夠
int i,n;
fin=fopen("a.dat","r"); //打開a.dat文件
if (!fin){printf("open error\n"); return 1;}; //打開失敗處理
printf("reading ...\n" );
n=0;
while (1){
if ( fscanf(fin,"%*d %lf %*lf",&a[n])==EOF) break; //跳1 int,讀1 double, 跳1 double
n++; //數據個數統計
}
fclose(fin); //關閉
for (i=0;i<n;i++) printf("%lf\n",a[i]); //輸出讀到的數
return 0;
}
每行數據個數 不等 的時候,可以用:
fgets() 一行一行地讀 行, 存入 s[2000],用 sscanf() 從s[] 里用格式 "%*d %lf」跳著讀。
%*d --跳1個int, %*lf --跳1個double. (非常 復雜的文件結構 可以 用 方括弧格式,這里從略)。
9. c 中怎樣跳過一些字元串讀取自己想要的字元串(TXT文)
提供一個思路 ASCII表示的符號范圍。
你可以判斷字元串,是否為ASCII碼,是忽略。
不是,輸出。
上面的變數還應該定義一些操作字元串的指針。
相關有關編碼信息參考以下babybubble網路知道:
C/C++支持的是ASCII,不過漢字編碼中,GB2312與ASCII是兼容的,所以可以在C中獲得漢字的GB2312編碼
GB2312是兩個位元組的,第一位元組是高八位,第二位元組是低八位,比如下面的程序:
#include<stdio.h>
#include<string.h>
int main()
{
char a[5];
strcpy(a,"啊");
printf("%XH %XH\n",(unsigned char)a[0],(unsigned char)a[1]);
return 0;
}
a[0]是「啊」字的高八位,a[1]是低八位,程序運行結果是a[0]=B0 a[1]=A1,用16進製表示的,所以「啊」字的GB2312編碼是B0A1了~
輸出時要強制轉換成unsigned char,不然就變成負數了,因為編碼是以8位的無符號整數為單位的
當然也可以轉成10進制啦,比如
int b;
b=(unsigned char)a[0]*256+(unsigned char)a[1];
b即為漢字的10進制GB2312編碼了
10. C語言如何從文件中跳行讀入數據假設文件有3行,讀了第一行後,我想跳過第二行直接讀第三行,如何實現
文件有三行有兩種情況。一種是顯示是在屏幕上顯示三行,其實還是在一行,另一種是以換行符分割行。對第一種情況,遍歷統計字元個數,計算出第三行起始地址,對第二種遍歷以第二個換行符下一個地址作為第三行起始地址