掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
文字化けを治すには? (ID:68540)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ファイルの入出力なんですけど、下のソースを実行して、作成したファイルの中身を読み出したら、文字化けがおこるんです。どうしたらなおるんでしょうか? #include "stdafx.h" #include <stdlib.h> #include<string.h> //#include <fstream> //#include <iostream> //#include <istream> int _tmain(int argc, _TCHAR* argv[]) { //変数の宣言 int mode = 0; char str[256]; FILE *file; FILE *save; FILE *sakusei1; //FILE *fp; char filename[256]; //モードの選択([5]を選択したときだけプログラム終了) while(mode != 5){ printf("次の[1]〜[5]を選択してください。\n"); printf("[1]:新しくファイルを作る\n"); printf("[2]:すでにあるファイルに上書きする\n"); printf("[3]:すでにあるファイルに新しくデータを付け加える\n"); printf("[4]:すでにあるファイルからデータを読み出す\n"); printf("[5]:プログラムを終了する\n"); scanf_s("%d", &mode); fflush(stdin); if(mode < 1 || mode > 5){ //エラーの場合 printf("エラーです。もう一度選択してください。\n"); }else if(mode == 1){ //新規でファイルを作る printf("ファイル名を入力\n"); gets(filename); sakusei1 = fopen(strcat(filename, ".txt"), "a"); fputs("Udit17\n", sakusei1); if(sakusei1 == NULL){ //失敗していないか puts("ファイルの作成に失敗\n"); return 1; //異常終了は0以外を返す } puts("ファイルの作成に成功\n"); fputs(str, sakusei1); fclose(sakusei1); }else if(mode == 2){ //ファイルに上書き printf("ファイル名を入力\n"); gets(filename); save = fopen(strcat(filename, ".txt"), "r+"); if(save == NULL){ puts("ファイルがオープンできません\n"); return 1; } fputs("Houe Shinichi\n", save); puts("ファイルを上書きしました\n"); //while(fgets(str, 256, save) != NULL){ // printf("%s\n" ,str); //} fclose(save); }else if(mode == 3){ //新しくデータを付け加える printf("ファイル名を入力\n"); gets(filename); save = fopen(strcat(filename, ".txt"), "a+"); if(save == NULL){ puts("データの付け加えに失敗\n"); return 1; } fputs("Knight HOUE\n", save); //while(fgets(str, 256, save) != NULL){ //printf("%s\n", str); //} puts("ファイルにデータを付け加えました。\n"); fclose(save); }else if(mode == 4){ //ファイルを開く printf("ファイル名を入力\n"); gets(filename); file = fopen(strcat(filename, ".txt"), "r"); if(file == NULL){ puts("ファイルをオープンできません\n"); return 1; } while(fgets(str, 700, file) != NULL){ printf("%s", str); } puts("ファイルのオープンに成功\n"); fclose( file ); }else{ //プログラムを終了する printf("ファイル名を入力\n"); gets(filename); if(filename == NULL){ puts("ファイルのクローズに失敗\n"); return 1; } file = fopen(filename, "r"); puts("ファイルのクローズに成功\n"); fclose( file ); } } return 0; }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.