- ベストアンサー
ファイル入出力
Oh-Orangeの回答
- Oh-Orange
- ベストアンサー率63% (854/1345)
★他の回答者の『この回答への補足』より。 >わからないのは、文字列中の小文字を大文字にするです。 ↑ C言語では文字変換の関数(マクロ関数も含む)で toupper()、tolower() の2つがあります。 int toupper(c) は引数 c で与えられた文字が小文字(a-z)なら大文字(A-Z)を戻り値に返します。 int tolower(c) は引数 c で与えられた文字が大文字(A-Z)なら小文字(a-z)を戻り値に返します。 という処理ですのでこれを使うと良い。 >ソースコードは学校のパソコンにあるので、今は見せることができません。 >すいません。文字列を読み込む所まではできています。 ↑ 自宅でパソコンはあるのですよね。 コンパイラはありますか? 持っていない場合は用意した方が良いと思います。 http://oshiete1.goo.ne.jp/qa3124626.html→『プログラミング(数学的) 初心者です』 用意するのなら上のリンクの回答 No.6 を参考にして下さい。 >ちなみに使っている参考書は、C言語によるプログラミング基礎編 第2版です。 ↑ ・この本より次の本をお勧めします。 http://www.amazon.co.jp/dp/4274063372/→『C言語によるプログラミング―スーパーリファレンス編』 基礎編に載っていないものが載っています。 応用編もありますが買うとしたら上の本でしょう。 もちろん今後の参考として下さい。 ・以上。
関連するQ&A
- ファイル入出力について
ファイル入出力について、基本的なことは理解しているのですが応用が全く利きません。 ソースコードなど、ファイル入出力について詳しく解説しているサイトがありましたら教えてください。 ファイルから読み込んでそこから記憶する方法とかがよく分かりません。
- 締切済み
- C・C++・C#
- c言語:ファイルの入出力
2つの行列をファイルから読み込み、その積をファイルに出力するプログラムを 作りたいのですが、参考書を読んでもよくわからないので教えて頂きたいです。 テキストファイルの文字列のコピーなどは、参考書を見てできたのですが、 ファイル入出力を使った数値の計算がいまいち理解できませんでした。 注意点は以下の通りです。 ・ファイルはカンマ区切りのテキストファイルとし、入力ファイルはエクセルで作成。拡張子は.csv。 ・ファイル名はキーボードから入力できるようにする。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- iPhoneSDKでのファイル入出力
iPhoneSDK(Xcode)でプログラミングの勉強をしているのですが、 ファイルの入出力がなかなかできません。 ゲームの動作に使った変数などをセーブして次回ロードしたときにその変数を読み込むという形で考えているのですが、見つけたのが、テキストを入力して、入力した文字列を保存するやり方のサイトでした。 どなたかやり方か、わかりやすく方法の書いてあるサイトを教えてください。(ちなみに英語は苦手ですので、できる限り日本語で書いてあるサイトにしてください。) CやC++でのやり方は分かっていますので、その言語と比較しても構いません。 お願いします。
- 締切済み
- その他(プログラミング・開発)
- ファイルの入出力でのテキスト モードでの変換について
今までとりあえずサクサク骨組み作りたいので、短くかけるためマルチバイト文字主体で来たのですが ここらへんでUnicode文字のことが気になってきたので、以下のような関数を基本にしてプロパティやコードをいじったりしつつ入出力を色々試してみたのですが… (エラー時の処理とか省略します。) #include <TCHAR.h> #include <stdio.h> #include <locale.h> #ifdef _UNICODE #define 文字セット "Unicodeを使用" #else #define 文字セット "マルチバイトを使用" #endif void f(){ _tsetlocale(LC_ALL, _T("japanese")); FILE *fp; if ( _tfopen_s( &fp, _T("exp.txt"), _T("wb") ) ) return; _ftprintf( fp ,_T(文字セット)); fclose(fp); } ファイルサイズや出力内容を見てみると、Unicode文字を使う場合、このようにバイナリモードで書き込みをすると、バイト数が、単純にsizeof(wchar_t)*文字数になってしまうようで 気になったので調べてみると、こういうことみたいですね。 http://msdn.microsoft.com/ja-jp/library/c4cy2b8e%28VS.80%29.aspx 最後の方に >Unicode ストリーム入出力関数をバイナリ モードで実行すると、ファイルが Unicode であると想定されるため、入出力時に CR-LF 変換も文字変換も行われません。 と書いてありますが これは、ただしつまり Unicodeを扱う場合でも、結局バイナリモードで出力したらバイナリモードで入力すれば正しい同じデータが得られるし、テキストモードで出力したらテキストモードで入力すれば大丈夫と考えて良いですよね? 言い換えれば、少なくともUnicodeでテキストモードだと、CR-LF 変換と文字変換が行われてしまうということで (少なくともマルチバイトなら文字変換はなしでしょうが) 「文字変換」については今回初めて知りました。 他にはマルチバイト・Unicode問わず、テキストモードを使用すると、何か変換が行われる可能性はあるのでしょうか?
- ベストアンサー
- C・C++・C#
- ファイル入出力に関して
一度ファイルに保存した、int型データを再び取り出してint型配列に入れ足し算などをしたいのですが、ファイル入出力にはどんな関数を使えばよろしいでしょうか? 教えてください。 出力したデータは、ノートパッドなどで見れなくていいです。
- ベストアンサー
- C・C++・C#
- ファイルの入出力が出来ません。
perlの初心者です。 cgiを作ろうとしています。 標準出力には出力できても、ファイルの入出力が出来ません。 #!/usr/bin/perl open(OUT,">>test"); print OUT "test data"; close (OUT); と実行しても、エラーもでないのですが、ファイルも作られず、書き込みもされません。 しかし、コマンド名'test'としてセーブして、プロンプトから'perl test'とするとファイルに書き込みされるようです。 perlの設定の問題なのでしょうか? よろしくお願いします。
- ベストアンサー
- Perl
- C++ ファイルの入出力
C++ ファイルの入出力 テキストファイル(ノートパッド)の入出力について勉強しています。プログラムを一通り書いてデバッグした所、何のエラーもありませんでした。しかしテキストファイルを開くことができません。ファイルが存在しないときのために「I/O error」のメッセージを表示するようにしてあるんですけど、プログラムを動かすとそのメッセージが出ます。自分の書いたプログラムが悪いのかと思い、教科書にある例題をコピーして動かしても同じ結果です。プログラム自体は何の問題ないのにテキストファイルがリンクしません。ちなみにファイルの場所は指定していません。なのでcppファイルがあるところと同じところにテキストファイルを置いています。これで動くはずなんですが動きません。どこにテキストファイルを置けばいいのでしょうか?もし必要なら私が書いたコードも載せます。回答よろしくお願いします。
- 締切済み
- その他(学問・教育)
- ファイルの入出力について・・・
C言語初心者です。。。 ファイルの入出力についてなのですが、***.txtというファイルを読み込み、内容をコピーし、***.bakというファイルを作成するプログラムをつくっています。 単純なファイルの読み込みや書き込み程度なら理解しましたが、内容をコピーし、拡張子を.bakに変えるというところが全く思いつきません。 教えてもらえないでしょうか??よろしくお願いします。
- 締切済み
- C・C++・C#
- CASLIIの数値データ入出力
入出力のときはJISの文字コード表の値が使われ、それ以外の計算などにおいては通常の2進数が使われるとのことですが、その変換はどのように行うのでしょうか。 テキストには「1~9の文字には16進数の(0030)を減算」「A~Fの文字には(0037)を減算」と書いてあります。 例えば ’5’は内部コードでは(0035)、 16進数の数値では(0005) 数値と文字コードの差は16進数で(0030) というのは理解できます。 ただアルファベットになると理解できません。 例えば ’A’は内部コードで(0041) 16進数の数値では(000A) 数値と文字コードの差は16進数で(0037) なぜここで(0037)になるのでしょうか・・。 (0041)を(0037)で減算し、(000A)になるまでの過程を教えてください。
- ベストアンサー
- 情報処理技術者
補足
Cygwinをインストールするようにといわれたのですが、うまくインストールすることができません。Vistaにはインストールできないのでしょうか?Cドライブの容量なども関係していますか?ちなみに2.5GBぐらいしか残っていません。