完全に間違っている、目標はその後、tmpファイルに構造により、ファイル構造から情報をコピーすることで、いくつかの操作を行い編集して、新しい情報を新しいデータファイルに保存します。私が今しようとしているのは、ファイルを取得してから印刷することだけです。Cのデータファイルのプリントアウト私は、ディレクトリからファイルを取得し、メモリにそれを維持しようとしています
FredHutcheson À@LarryStarchÍ̼@LucyLu-FredFlintstone 33£@BarnyRubbleÍÌ[email protected]³@RobertHenderson7ffÆ@BobbyNLMcÍ̼@BettyDurnanJPBFloodProfÀ@
私は本当に正確に見えるようになっているのか分からないが、その間違いはないこと:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
typedef struct hw5_struct {
char f_name[12];
char l_name[12];
int age;
float height;
}HW5_struct;
void printThisFile(FILE *data);
int main(int argc, char *argv[]) {
const char *fileLocation = argv[1];
FILE *originalData = fopen(fileLocation, "r");
if(access(fileLocation, F_OK) != -1)
printf("The file at %s exists\n", argv[1]);
printThisFile(originalData);
//int sizeOfOriginalData = sizeOf(&originalData);
}
void printThisFile(FILE *data) {
printf("printThisFile called\n");
int c;
if (data) {
printf("printing file contents now:\n");
while((c = getc(data)) != EOF)
printf("%c", c);
fclose(data);
}
}
それは次のように出力します。
すべての警告とデバッグ情報でコンパイル(そう 'gccの-Wall -Wextra -g'(http://gcc.gnu.org/)[GCC]と.....)。デバッガ** gdb'を使用します。いくつかの8進またはヘキサダンプユーティリティを使用して、ファイルの内容を理解することもできます。 [od](http://man7.org/linux/man-pages/man1/od.1.html) –
一見すると、あなたの出力は暗黙的なファイル形式と互換性があります。 –
そのような 'access()'を使うのは、ほとんど無意味です。あなたがそれを使うつもりなら、 'fopen()'を呼び出す前にそれを呼びますが、気にしないでください。呼び出した関数ではなく、 'fopen()'を呼び出す関数でファイルが開かれたことを確認する必要があります。データファイルに何があるのかわからない場合は、どうすれば助けになるでしょうか?ファイルにこれらのレコードを書いたプログラムを表示する必要があるかもしれません。あなたは 'fwrite()'を使ったのですか?レコードを読み込むために 'fread()'を使わないのはなぜですか? –