2016-03-26 14 views
-2

私はC言語で非常に新しいです、私は現在、内容 "6"のファイルだけを読み込もうとしています。私はファイルを実行するたびに、私は取得:バスエラー:10。C11バスエラー:10

#include <stdio.h> 
#include <stdlib.h> 
char input(void); 

int main(int argc, char** argv) 
{ 


    input(); 

    return (EXIT_SUCCESS); 
} 

char input(void) 
{ 
    FILE *fp; 
    char *score; 

    fp = fopen("data.bin", "rt"); 


    fscanf(fp,"%s", score); 

    printf("%s", score); 

    fclose(fp); 

} 
+2

'score'は何も指していませんが、' fscanf'で指し示すメモリを読み込もうとします。 –

+0

'score'は** pointer **と呼ばれ、_array_ではなく、良い理由があります。 2つの異なるタイプが同じように動作することは、まったく役に立たないでしょう。 – Olaf

答えて

1

私はこのようにコードを変更:

#include <stdio.h> 
#include <stdlib.h> 

void input(void); 

int main(int argc, char** argv) { 
    input(); 
    return(EXIT_SUCCESS); 
} 

void input(void) { 
    char buffer[10]; 
    FILE *ptr; 
    ptr = fopen("data.bin","rb"); // r for read, b for binary 
    fread(buffer, sizeof(buffer), 1, ptr); // read 10 bytes to our buffer 
    printf("%s", buffer); 

    fclose(ptr); 
} 

出力:Read/Write to binary files in C

6

などのために、これをお読みください。

+1

ありがとうございました! – cpep

関連する問題