いちばん失敗した人決定戦

C言語について質問です。読み取った文字を関数を使って置き換え、それをファイル出力したいのですが、a[10] = change(s)でエラーが出てしまいます。戻り値を設定すれば良いのですがどのように設定すればいいのか分かりません。分かる方お願いします。(pritfでターミナルには置き換えた後の文字は表示できたのですが、そこからどうやってファイル出力に移すのか分かりません)

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

void tenji(char*);

int main(void)
{
FILE *fin; // 読み込み用
FILE *fout; // 書き込み用
char s[5];
char a[10];
int i;

// 読み込み
if((fin = fopen("report3.txt", "r")) == NULL){
printf("Cannot open the file.\n");
exit(1);
}
// 書き込み
if((fout = fopen("rreport3.txt", "w")) == NULL){
printf("Cannot open the file.\n");
exit(1);
}
// ファイルの読み込み
while(fscanf(fin, "%s", &s) != EOF){
printf("data = %s\n", s);
}
a[10] = change(s);
fprintf(fout, "%s\n", s); //ファイル文字の出力
fprintf(fout,"%s",a); //置き換えた後の出力

// ファイルを閉じる
fclose(fout);
fclose(fin);
return 0;
}

void change(char *x){
int i;
char judge1[] = "O";
char judge2[] = "X";

for ( i = 0; i < 4; i++){
if ("%d",x[i] == 97){
printf("%s%s\n",judge1,judge2);
}
if ("%d",x[i] == 98){
printf("%s%s\n",judge1,judge2);
}
if ("%d",x[i] == 99){
printf("%s%s\n",judge2,judge2);
}
}
}

A 回答 (3件)

report3.txtにはどのようなデータが設定されてますか。


report3.txtの内容を提示してください。
rreport3.txtには、どのような結果が書き込まれることを期待していますか。
その内容を具体的に提示してください。
文字の置き換えは、どのような文字を、どのような文字に置き換えたいのですか。具体的に提示してください。
    • good
    • 0

> a[10] = change(s)でエラーが出てしまいます。

戻り値を設定すれば良いのですがどのように

change関数が、

> void change(char *x){

と、戻り値が無い、voidだって作られてるから、エラーになるのでは。
戻り値を返すように、

char change(char*)

として、必要な値をreturnするように変更とか。
    • good
    • 0

if ("%d",x[i] == 97){


printf("%s%s\n",judge1,judge2);
}
if ("%d",x[i] == 98){
printf("%s%s\n",judge1,judge2);
}
if ("%d",x[i] == 99){
printf("%s%s\n",judge2,judge2);
なにこの書き方
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!