0

したがって、「test.txt」というタイトルのこのファイルがあり、このファイルの内容は次のとおりです。

一度

二回

私がやろうとしているのは、このファイルを読み取り、その内容を行ごとに取得して、以下に示すように「myarray」という配列に追加することです。現在、ファイルを読み取ってファイル内の行数を取得できますが、配列内の独自のインデックスに各行を追加する方法を理解できません。

これまでのコードは次のとおりです。

String filename = "C:\test.txt"    
Stream input = read filename
string str
int Number
int star = 0
while (true)
{
int NUMBER
input >> str
     if (end of input) break
     star++
}
NUMBER = star
string myarray[NUMBER] = {str}
print myarray[]`

理論的には、myarray[NUMBER] = {"once","twice"} が必要です

どんなアドバイスでも大歓迎です。ありがとう!

4

2 に答える 2

1

これを行うには、次の 2 つの方法があります。

最初の方法は、ファイルを 2 回ループすることです。最初に何行あるかを数えるためだけに、その数の行で配列を作成します。次に、もう一度ループして、実際に各行を配列スロットの 1 つに追加します。

例:

String filename = "C:\test.txt"    
Stream input = read filename
string str
int star = 0

while (true)
{
    input >> str
    if(end of input) break
    star++
}

string strArray[star]
input = read filename    
star = 0

while (true)
{
    input >> str
    if(end of input) break
    strArray[star] = str
    star++
}

// Do your code with the array here

2 つ目の方法は、配列の代わりにスキップ リストを使用する方法です。

例:

String filename = "C:\test.txt"    
Stream input = read filename
string str
int star = 0
Skip fileLines = create

while (true)
{
    input >> str
    if(end of input) break
    put(fileLines, star, str)
    star++
}

for str in fileLines do
{
    print str "\n"
}
delete fileLines

Skip リストを削除してリソースを解放する最後の行を忘れないでください。

于 2013-08-14T15:53:44.340 に答える
0

スティーブの回答と配列を使用した何かに対するあなたの要求について詳しく説明すると、次のことも可能です。

string filename = "C:\\test.txt"    
Stream input = read filename
string str
int star = 0
Array fileLines = create(1,1)

while (true)
{
    input >> str
    if(end of input) break
    star++
    put(fileLines, str, star, 0)
}
put(fileLines, star, 0, 0)

int index, count = get(fileLines, 0, 0) // get the number of lines
for (index=1; index<=count; index++) 
{
    print (string get(fileLines, index, 0)) "\n"
}
delete fileLines

これは Array オブジェクトを使用し、行数が最初の場所に格納されます。配列のもう 1 つの「次元」は、行ごとの情報を格納するために使用できます (たとえば、単語数のカウントなど)。

繰り返しますが、完了したら Array オブジェクトを削除することを忘れないでください。

于 2013-09-02T13:58:23.840 に答える