テキストファイルの中身を行指定して表示させたいのですが、上手くいきません。
問題点1. テキストファイルの中身が可変長の場合、fseek(fp, , SEEK_SET);の第2引数にはどのような考え方をすれば上手くいきそうでしょうか?
問題点2. 仮にfseek(fp, str[val - 1], SEEK_SET);とした場合、subscripted value is not an array, pointer, or vector(添え字の値は、配列、ポインタ、またはベクトルではありません。)というエラーが表示されてしまいます。main()でstr配列を作成したのに、どうしてこのようなエラーが表示されるのでしょうか?
file.text
1aa 2bbb 3cccc 4d
C
1#include <stdio.h> 2#include <stdlib.h> 3 4char fileDisplay(char str, int val) { 5 6 FILE *fp; 7 fp = fopen("file.txt", "r"); 8 if (fp == NULL) { 9 printf("ファイルが開けません"); 10 exit(EXIT_FAILURE); 11 } 12 13 fseek(fp, str[val - 1], SEEK_SET); 14 fgets(str, sizeof(str), fp); 15 fclose(fp); 16 17 return str; 18} 19 20int main(void) { 21 char str[30]; // ファイルの中身を入れる配列 22 int val; // ファイルの行数を指定 23 24 printf("ファイルの行数を入力してください\n"); 25 scanf("%d", &val); 26 printf("ファイルの%d行目を指定しました\n", value); 27 28 fileDisplay(str, val); 29 30 printf("ファイルの中身は、%sです", str); // 指定された行のファイルの中身を表示 31 return 0; 32} 33
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/05 15:44 編集
2020/05/06 15:20