http://blog.csdn.net/davebobo/article/details/51654789 在这里我们一共有三个功能,写文件,读文件,从指定行中读取文件,代码比较简单不多加解释。
- #include <stdlib.h>
- #include <string.h>
- #include <stdio.h>
-
- #define MAX_LENTH_OF_LINE 1024
-
- FILE* fptr;
-
- int WriteToText()
- {
-
- fptr = fopen("test.txt", "w");
- if (fptr == NULL)
- {
- printf("Cannot Open file for writing\n");
- return -1;
- }
- for (int i = 0; i < 3; i++)
- {
- fprintf(fptr, "%d %d %d %d %d %d \n", i + 1, i + 2, i + 3, i + 4, i + 5, i + 6);
- /*
- 生成文本文件test.txt 文本内容
- 1 2 3 4 5 6
- 2 3 4 5 6 7
- 3 4 5 6 7 8
- */
- }
- fclose(fptr);
- return 1;
- }
-
- int ReadFromText(){
-
- fptr = fopen("test.txt", "r");
- if (fptr == NULL)
- {
- printf("Cannot Open file for reading\n");
- return -1;
- }
- int a, b, c, d, e, f;
- for (int i = 0; i < 3; i++)
- {
- fscanf(fptr, "%d %d %d %d %d %d \n", &a, &b, &c, &d, &e, &f);
- printf("%d %d %d %d %d %d \n", a, b, c, d, e, f);
- /*
- 控制台打印出的文本内容
- 1 2 3 4 5 6
- 2 3 4 5 6 7
- 3 4 5 6 7 8
- */
- }
- fclose(fptr);
- return 1;
- }
-
- int SetPositionByLine(FILE *fp, int nLine)
- {
- int i = 0;
- char buffer[MAX_LENTH_OF_LINE + 1];
- fpos_t pos;
-
- rewind(fp);
- for (; i < nLine; i++)
- fgets(buffer, MAX_LENTH_OF_LINE, fp);
- fgetpos(fp, &pos);
- return 0;
- }
-
- int ReadByLine(){
-
- char buffer[MAX_LENTH_OF_LINE + 1];
- FILE *fp;
- fp = fopen("test.txt", "r");
- SetPositionByLine(fp, 2);
- fgets(buffer, MAX_LENTH_OF_LINE, fp);
- printf("%s\n", buffer);
- /*
- 读取第三行的内容
- 3 4 5 6 7 8
- */
- fclose(fp);
- }
-
- int splitLineStr(int strNum,char* bufIn,char* bufOut,int* bufLen){
-
- int i = 0;
- int j = 0;
- int k = 0;
-
- for (; bufIn[i] != 0 && j < strNum; i++){
- if (isspace(bufIn[i])){
-
- if (j == 0)
- {
- memcpy(bufOut, bufIn, i);
- k = i + 1;
- *bufLen = i;
- }
- else
- {
- memset(bufOut, '\0', sizeof(bufOut));
- memcpy(bufOut, bufIn + k, i - k);
- *bufLen = i - k;
- k = i + 1;
- }
-
- j++;
- if (j == strNum)
- {
- return 1;
- }
- else{
- continue;
- }
- }
- }
-
- return 1;
- }
-
- void main(){
-
- //WriteToText();
- //ReadFromText();
- ReadByLine();
- system("pause");
- return;
- }
|