1. c語言文件讀寫,如何正確的存取多位數(int)
C語言將整形數據存儲到文件中,可採用兩種方法,1、二進制存取 2、字元方式存取。
因存儲方式的不同,讀取也要採用相應的方式進行操作,否則不能正確得到存儲的數據。
二進制存取
二進制方式是將原數據的內存格式存儲到文件中,在同類型的機器上可以正確的讀取。但如果換成不同類型的機器則會出現數據解釋錯誤,因此,具有不可移植性。
這種方式,採用的存取函數相應為:fwrite()和fread().
如:
int num=12345;
FILE *fp=fopen( "datafile", "wb" );
fwrite( &num, sizeof(int), 1, fp ); //將num數據寫入文件
....
FILE *fp=fopen( "datafile", "rb" );
fread( &num, sizeof(int), 1, fp ); //讀文件數據到num中
字元方式存取
字元方式是將數據的可見內容,以字元形式存儲到文件中,可以在任何機器上閱讀並讀取,方便不同系統間的數據傳遞。
這種方式,採用的存取函數相應為:fprintf()和fscanf().
如:
int num=0;
FILE *fp=fopen( "datafile", "w" );
fprintf(fp, "%d ", num ); //將num數據寫入文件
....
FILE *fp=fopen( "datafile", "r" );
fscanf(fp,"%d", &num ); //讀文件數據到num中
2. C語言中如何復制數組的內容
C語言中復制數組的內容源代碼如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 10
void show_array(const int ar[], int n);
int main()
{
int values[SIZE] = {1,2,3,4,5,6,7,8,9,10};
int target[SIZE];
double curious[SIZE / 2] =
{2.0, 2.0e5, 2.0e10, 2.0e20, 5.0e30};
puts("memcpy() used:");
puts("values (original data): ");
show_array(values, SIZE);
memcpy(target, values, SIZE * sizeof(int));
puts("target ( of values):");
show_array(target, SIZE);
puts("
Using memmove() with overlapping ranges:");
memmove(values + 2, values, 5 * sizeof(int));
puts("values -- elements 0-5 copied to 2-7:");
show_array(values, SIZE);
puts("
Using memcpy() to double to int:");
memcpy(target, curious, (SIZE / 2) * sizeof(double));
puts("target -- 5 doubles into 10 int positions:");
show_array(target, SIZE/2);
show_array(target + 5, SIZE/2);
system("pause");
return 0;
}
void show_array(const int ar[], int n)
{
int i;
for (i = 0; i < n; i++)
printf("%d ", ar[i]);
putchar('
');
}
(2)c語言調用匯編程序int類型數據拷貝擴展閱讀
1、C語言編程中,將常用的操作封裝成函數進行調用,可以大大簡化程序的編寫,而且在代碼的維護性及可讀性方面也提供了便利。
2、不同地方需要對處理後的數組內容多次進行顯示,並且很多情況下並非顯示數組裡面的全部內容,而僅僅是想觀察數組中的部分數據內容,若每次顯示時都用printf函數寫的話,可以寫一個自定義的通用函數,用來根據需要顯示數組中的內容。