• 締切済み

ファイル内の文字を配列に格納

ファイル内の文字列をも表示させた上で、文字列を配列に1つずつ格納したいのですが、とっても簡単な方法で教えてください。 ファイル名は「abc」で配列名は「moji」でお願いします。

みんなの回答

回答No.1

>とっても簡単な方法で教えてください。 ・mojiという配列を用意する。 ・ファイル名「abc」のファイルを開く。 ・開いたファイルから一文字ずつ読み込み、mojiに格納していく。 ・終了したらファイルを閉じる。 これだけ。 何も検討されていないようなので一言だけ。 「ファイルの文字数(ファイルサイズ)>配列の要素数」となった場合はどうするの?

関連するQ&A

  • 文字型配列に格納した空白の切捨て

    Cでやり方がわからないことがあるのでご質問があります。 文字型配列、例えばchar buf[128]にfgetsなどで、文字列を格納したとします(例えば"abc defghi ")。 この場合、最後に続く空白がその後の作業で邪魔なので新しい文字型配列もしくはポインタに、2つ以上空白が続いた場合は、最後の文字までで、以下の空白は切り捨てた状態("abc defghi")で格納したいのですが方法が思い浮かばず困っています。 よい方法があればお教えください。 よろしくお願いします。

  • 入力された文字列を一文字ずつ配列に格納する方法

    例えばABCって文字列が入力されたら配列に data[0]="ABC" と格納するのではなく data[0]="A" data[1]="B" data[2]="C" と格納するにはどう書けばいいのでしょうか?

  • テキストファイルから文字列を読み込んで二次元配列に格納するには

    毎回お世話になっています。 ただいまC言語を勉強中の学生です。 基本的な文法は頭に入れたつもりでしたが、まだポインタと ファイルの入出力に苦手意識があり 実際うまくできないでいるので どなたか ご存知の方にアドバイスいただければと思って書き込ませていただきます。 今回練習しているのは 先に述べたように、テキストファイルに abc def ghi jkl などと文字列を書いておき、そのファイルを読み込んで 二次元配列に格納したいのですが、何を勘違いしているのか、 うまく実現できません。 参考書などを見て 一次元配列へ格納する場合は できたようなのですが、今後このプログラムを発展させる段階で 二次元配列に文字列を 格納できたほうが好都合なので 今模索しています。。。 ちなみに 一次元配列に格納する場合は 以下のように書きました。 #include<stdio.h> #include<stdlib.h> main() { char a[10]; FILE *fp; fp = fopen("word.dat", "r"); if (fp == NULL) { printf("File does not exist.\n"); exit(1); } while(fscanf(fp,"%s",a)==1){ printf("%s\n",a); } fclose(fp); return 0; } 実はコレに関しても分からない点があり、それは 目的の配列変数 a[]に格納できたのだから それを確認したいと思い printfで a[0]~a[10]を表示してみようとしたところ 変に文字化け したものが表示されたり、何も表示されなかったり よく分からないことが起きます。私は何を勘違いしてしまっているのでしょうか(>_<) 長々と書いてしまいましたが、今回 御教授いただきたいのは (1)、テキストファイルから 英字の文字列を読み込んで二次元配列に格納するために用いるのに 一番最適な関数はどれか(fscanfやfgetsなど) そして、その関数を使って 一番シンプルな記述をするにはどのように記述すればよいのか (2)、上のようなプログラムの書き方で、配列aにテキストファイルから読み込んで格納できたようなのに、a[0]~a[10]をprintfしたときに うまく中身が表示されないのはなぜか。 という点なのですが、(1)をとりあえず急いでおりますので、(2)はおまけ程度に考えていただければと思います。 なぜかファイルの入出力がいまだに把握できなくて苦手としておりますので、どうか よろしくお願いいたします。

  • ファイルの読み込み、配列に格納

    お世話になります。Java初心者です Javaプログラムを実行する同じディレクトリにあるテキストファイルとデータファイルをコマンドラインで同時に読み込み それぞれ違う配列に格納したいのですが、1つのファイルの読み込みは出来ても2つ同時の読み込みと配列格納でつまづいています。 読み込むテキストファイルには以下のような1行の文が、 Dr. Fujita is great! 読み込むデータファイルには以下のような文字が書かれています。 AC 4C 7C 10C KC 3D 6D 9D QD JB 3C 6C 9C QC 2D 5D 8D JD JA 2C 5C 8C JC AD 4D 7D 10D KD 配列に格納する際、テキストファイルの場合は全て大文字にし、アルファベット以外の記号(スペース含)は全て消して配列に格納します。 上の例でいえばこのような状態で格納です↓ DRFUJITAISGREAT データファイルの場合は、2組1文字をそのまま配列に格納です。ただしスペースは飛ばします。 上の例でいえば、ACを配列0に、4Cを配列1に、7Cを配列2に、、、と格納していきます。 import java.io.*; public class sample{ public static void main(String[] args){ try{ FileReader f = new FileReader(args[0]); BufferedReader b = new BufferedReader(f); Strings; while((s=b.readLine())!=null){ System.out.println(s); ←読み込んでるか確認 } }catch(Exception e){ System.out.println(no file); } } } ファイルの指定は実行時に、java sample datafile.dat textfile.txt と指定します。 読み込むプログラムは以上のように書いたのですが、2つファイルを読み込むにはどのように記述したらよいのでしょうか。 FileReaderを2つ作成?しても最初に指定したデータファイルの内容がまた読み込まれるだけで・・・ 読み込んだら変数sに入りますが、たとえばs.substring()なんかでわけて配列に入れようとしても、s.substring()←ここでエラーが出てしまいます。 あと、Dr. Fujita is great!のアルファベットを大文字にし、記号(スペース含)を飛ばして格納するにはどうしたらよいのでしょうか。 宜しくお願いします

    • ベストアンサー
    • Java
  • 文字列を配列として格納したものをpublic

    文章がおかしくてすみませんが 文字列を配列として格納したものをpublic に指定したいのですがどの様にしたらいいのでしょうか? たとえば char *a[20];をpublic:に指定したいときは そのままpublicの所に置けばいいのでしょうか? 宜しくお願いいたします

  • 配列にある文字列を1つの変数に改行付きで格納する方法

    配列にある文字列を1つの変数に改行付きで格納する方法 Array ( [0] => レタス [1] => トマト [2] => きゅうり ) などの配列を $yasai 変数へ ------ レタス トマト きゅうり ------ と格納してテキスト表示させたいのですが、どのようにすれば可能でしょうか? そもそも可能なのでしょうか?ご存知の方、いらっしゃいましたら宜しくお願いします。

    • ベストアンサー
    • PHP
  • c#で他のアプリの文字入力フォームに指定の文字を入力したい

    例えばabc.exeというアプリがあったとします。 このアプリには文字列を入力するフォームがいくつかあり、 このアプリのフォームに文字を入れるプログラムを作成したいと思います。 まずはabc.exeをアクティブにし、 アプリのフォームの上から順に配列に代入された文字列の入力をしたいと思います。 つまり、 abc.exeの一番上のフォームにはmoji[0]にある文字列 二番目のフォームにはmoji[1]にある文字列 三番目のフォームにはmoji[2]にある文字列 という形です、こういったことは可能でしょうか? SendKeys.SendWaitというのはこういうケースでも使えるのでしょうか? もし可能であれば解説ページ、コードの例をご教示頂ければ幸いです。 よろしくお願いします。

  • 3文字取得して配列に格納するにはどうしたらいいのでしょうか?

    今日1日、考えましたがどのようにすればいいのか解らず時間だけが過ぎてしまい焦っています。 「abcdef1234」という文字列があります。 上記の文字列を下記のように配列にする事は可能でしょうか? ・abc ・bcd ・cde ・def ・ef1 ・f12 ・123 ・234 すみませんがご教授いただけませんでしょうか? 些細な事でも構いませんので宜しくお願いします。

    • ベストアンサー
    • Java
  • 特定できない配列の受け渡し

    いつもお世話になってます。 配列の基礎部分が理解出来ていないので投降させて頂きました。 やりたい事 外部から取得した不特定多数の文字列 (例えばカンマ切りで 0,ab,cde,23e,ss,f,fre など) を配列として格納し、それを個別に呼び出す方法。 具体的に応用したい事 その配列から呼び出したデータを元に myload = new LoadVars(); myload.load("mydomain/配列から抜き出した値.txt"); myload.onData = function(moji) {list = moji;} 等で、テキストデータをそれぞれ読み込み、 テキストインスタンスでそれぞれ表示させる その際上記で言えば変数の myload moji list をそれぞれ変える必要があると思うのですが 具体的にどの様にすれば良いでしょうか? moji++等で良いのでしょうか? 要は取得した文字列から 読み込みファイルへのパスを取得して それぞれ読み込んで、テキストで表示させたい という感じです。 不明な点、補足要求あればお願い致します。

    • ベストアンサー
    • Flash
  • C#で、ファイルのデータを取得し、配列に格納

    C#を始めたばかりで分からないことも多いため、質問させていただきます。 C#で、テキストファイルにある2進数の数値 例: 00111100 11111100 00010100 のような8桁のデータをC#でテキストファイルから2進数のまま読み取り、 配列に格納したいです。 上の例で考えると、 byte[0]に 00111100 byte[1]に 11111100 byte[2]に 00010100  のデータが入力されているような感じです。 ArrayListを使用する方法や、 バイナリファイルで読み込む方法などもあると思うのですが、 データを1行ごとに配列に入力し、 それを見た目どおり2進数として格納する方法が分かりません。 やはり、文字コードなどを参考に、 1文字ずつ格納し、引き算していくしか方法はないのでしょうか? 文章が分かりにくくて申し訳ないのですが、回答いただけるとありがたいです! よろしくお願いいたします。

専門家に質問してみよう