本文目錄一覽:
- 1、C語言中如何用gets();語句來接收一個二維數組
- 2、C語言中,如何手動輸入二維數組?
- 3、c語言 如何把一個文件的每一行讀入到一個二維數組中,
- 4、如何用C語言將文本文件中儲存的數據讀入一個二維數組?
- 5、C語言如何將文本文件中的數據讀到二維數組中?
- 6、c語言中如何獲取一個二維數組的行列數?
C語言中如何用gets();語句來接收一個二維數組
gets從標準輸入設備讀字元串函數。可以無限讀取,不會判斷上限,以回車結束讀取,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。從stdin流中讀取字元串,直至接受到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字元數組中。換行符不作為讀取串的內容,讀取的換行符被轉換為『\0』空字元,並由此來結束字元串。
因為gets函數是以換行符為分隔,所以用一層循環即可讀取一個二維數組。對於每行字元串,使用sscanf讀取每個數。
例如:
char s[100];
int a[3][3],i;for(i=0;i3;i++){
gets(s);
sscanf(s,”%d%d%d”,s[i],s[i]+1,s[i]+2);
}
C語言中,如何手動輸入二維數組?
C語言中,如何手動輸入二維數組?c語言的數組是非常重要的內容,特別是二維數組的內容,所以今天就由小編來為大家介紹c語言怎麼創建一個二維數組。
工具原料c語言電腦
方法/步驟分步閱讀
1
/6
第一首先在電腦上打開c語言編程軟體。
然後創建項目。
2
/6
第二然後導入stdio.h和stdlib包。
再加入malloc包。
3
/6
第三然後定義五個參數。
再創建其中兩個參數的空間。
4
/6
第四然後用for語句進行循環。
再用scanf語句進行接收輸入到二維數組。。
5
/6
第五然後用兩個for語言循環。
再輸出二維數組的數值。
6
/6
第六然後用printf語句進行數據輸出分格。
這樣一個二維數組就創建成功了。
注意事項
個人經驗,僅供參考。
內容僅供參考並受版權保護
擴展內容:
二維數組:
二維數組本質上是以數組作為數組元素的數組,即「數組的數組」,類型說明符 數組名[常量表達式][常量表達式]。二維數組又稱為矩陣,行列數相等的矩陣稱為方陣。對稱矩陣a[i][j] = a[j][i],對角矩陣:n階方陣主對角線外都是零元素。
二維數組A[m][n],這是一個m行,n列的二維數組。設a[p][q]為A的第一個元素,即二維數組的行下標從p到m+p,列下標從q到n+q,按「行優先順序」存儲時則元素a[i][j]的地址計算為:LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t,按「列優先順序」存儲時,地址計算為:LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t,存放該數組至少需要的單元數為(m-p+1) * (n-q+1) * t 個位元組。
c語言 如何把一個文件的每一行讀入到一個二維數組中,
fopen函數可以讀取文件
讀到的每一行保存在字元數組中,根據空格作為分隔符進行分割
再用atoi得到數字,保存在數組中,大體思路就是這樣
例子
#include stdio.h
#include string.h
#define MAXLINE 3
#define MAXCOLUMN 10
void main(void){
FILE *fp; //文件指針
char arr[MAXLINE][MAXCOLUMN]={0}; //定義3行10列的二維數組並初始化
int i = -1;
if((fp=fopen(“./test/filename.txt”,”r”))==NULL){ //打開txt文件
perror(“File open error!\n”);
return;
}
while((fgets(arr[++i],MAXCOLUMN+1,fp))!=NULL) //讀取一行並存到arr數組,百度fgets
printf(“%d: “,i); //列印行號
//puts(arr[i]);
char *subarr = strtok(arr[i],” “); //以空格為分隔符從arr[i]中獲得字串,百度strtok
while(subarr!=NULL){
data[i][j] = atoi(subarr); //將字串轉為int型數據存入data數組
printf(“%d\t”,data[i][j]); //列印data[i][j
subarr = strtok(NULL,” “); //繼續獲得arr[i]中的字串
j++; //data數組列加一
}
printf(“\n”);
}
//循環完畢後,所有數據已在data數組中
printf(“\n”);
fclose(fp); //關閉指針
}
如何用C語言將文本文件中儲存的數據讀入一個二維數組?
此代碼符合你的要求:
#include stdio.h
#include string.h
#include stdlib.h
int main(){
FILE *fp;
char line[1000];
char wLine[1000];
double SIMUL[100][100];
int lineCount = 0;
char *delim=” “;
int ii,jj;
fp = fopen(“1.txt”,”r”);
if( fp==NULL){
printf(“fopen error!\n”);
return -1;
}
memset(line,0x00,sizeof(line));
while(fgets(line,1000,fp)!=NULL){
strtok(line,delim);
for(ii=0;ii5;ii++){
SIMUL[lineCount][ii] = atof(strtok(NULL,delim));
}
lineCount++;
}
fclose(fp);
//列印結果
for(ii=0;iilineCount;ii++){
for(jj=0;jj5;jj++){
printf(“%f “,SIMUL[ii][jj]);
}
printf(“\n”);
}
return 0;
}
C語言如何將文本文件中的數據讀到二維數組中?
C語言中從.txt文本文件中按行讀取字元串數據至二維數組中,代碼如下:
#include stdio.h
main()
{
char s[10][20] = {0}; //定義一個二維數組
int i=0;
FILE *fp; //文件指針
fp = fopen(“1.txt”,”r”); //讀取文本文件1.txt
for(i=0;i3;i++)
{
fscanf(fp,”%s”,s[i]);
printf(“%s\n”,s[i]); //列印數據到二維數組中
}
}
c語言中如何獲取一個二維數組的行列數?
有兩種方式:
1 二維數組的行列數在定義的時候就是確定好的,所以編程人員是知道二維數組的大小以及行列數的。 所以可以直接使用行列數的值。
為方便維護,可以將行列數定義為宏,直接調用對應的宏名作為行列值。
2 動態獲取。
對於type array[A][B];形式的二維數組,可以通過計算sizeof獲取行列數。
sizeof(array[0][0])為一個元素佔用的空間,
sizeof(array[0])為一行元素佔用的空間,
sizeof(array)為整個數組佔用的空間,
於是:
行數 = sizeof(array)/sizeof(array[0]);
列數 = sizeof(array[0])/sizeof(array[0][0]);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/247845.html