【DXライブラリ】FileRead_getc()【余分な改行削除】

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
若葉マーク

【DXライブラリ】FileRead_getc()【余分な改行削除】

#1

投稿記事 by 若葉マーク » 13年前

現在ファイルから文字列を読み出すプログラムを作っているのですが、
余分な改行コードを削除する部分がうまくつくれずにいます。

コード:

//※色々省略
char inputc[64];
char input[64];

while(1)
{
	for( i = 0; i < 64; ++ i )
	{	
		inputc[i] = input[i] = FileRead_getc(fp);	//1文字取得する
                          if ( input[i] == '\n' )						//カンマか改行なら
		{
			inputc[i] = '\0';						//そこまでを文字列とし←ここが上手くいかない
			break;
		}
		if ( input[i] == EOF )						//ファイルの終わりなら
		{
			goto EXFILE;							//終了
		}
}
inputc='\0';
としても、DrawString()で出力すると最後に'.'と改行コードを出力したときの文字がくっついてしまいます。
しかもなぜか
inputc[i-1]='\0';
とすると上手くいくのです。
ナニが原因なのかどなたかご教授お願いします。
(以下ににテキスト内容の一部を晒します。)
~ゲームのあそびかた~
HOW TO PLAY

ゆうたろう

Re: 【DXライブラリ】FileRead_getc()【余分な改行削除】

#2

投稿記事 by ゆうたろう » 13年前

input[64]はint型だったはず

若葉マーク

Re: 【DXライブラリ】FileRead_getc()【余分な改行削除】

#3

投稿記事 by 若葉マーク » 13年前

ゆうたろう さんが書きました:input[64]はint型だったはず
本当ですね、ご指摘ありがとうございます!
正しくは

コード:

//※色々省略
int input[64];
char inputc[64];

 
while(1)
{
    for( i = 0; i < 64; ++ i )
    {   
        inputc[i] = input[i] = FileRead_getc(fp);   //1文字取得する
                          if ( input[i] == '\n' )                       //カンマか改行なら
        {
            inputc[i] = '\0';                       //そこまでを文字列とし←ここが上手くいかない
            break;
        }
        if ( input[i] == EOF )                      //ファイルの終わりなら
        {
            goto EXFILE;                            //終了
        }
}
です。

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

Re: 【DXライブラリ】FileRead_getc()【余分な改行削除】

#4

投稿記事 by へにっくす » 13年前

若葉マーク さんが書きました:inputc='\0';
としても、DrawString()で出力すると最後に'.'と改行コードを出力したときの文字がくっついてしまいます。
しかもなぜか
inputc[i-1]='\0';
とすると上手くいくのです。
ナニが原因なのかどなたかご教授お願いします。


以下で分かるかな?
C言語で"\n"を、テキストモードで開いたファイルで出力すると、"\r\n"となるんですよ。
改行コード-Wikipedia
written by へにっくす

ゆうたろう

Re: 【DXライブラリ】FileRead_getc()【余分な改行削除】

#5

投稿記事 by ゆうたろう » 13年前

if(input==EOF){//ファイルの終わりなら
goto EXFILE;//終了
}
をforループの外に出してみるとか

若葉マーク

Re: 【DXライブラリ】FileRead_getc()【余分な改行削除】

#6

投稿記事 by 若葉マーク » 13年前

返信が大変遅れてしまいましたが、
皆様のおかげで解決する事ができました、ありがとうございます!
へにっくす さんが書きました: C言語で"\n"を、テキストモードで開いたファイルで出力すると、"\r\n"となるんですよ。
大変参考になりました!

閉鎖

“C言語何でも質問掲示板” へ戻る