char配列を取り込んで、stdinから読み取った文字列に設定する関数/メソッドが必要です。最後に読み取った文字をリターンタイプとして返す必要があるため、行の終わりに到達したのか、ファイルマーカーの終わりに到達したのかを判断できます。
これが私がこれまでに持っているものであり、私はここからのコードに基づいています
更新:変更しましたが、テキストの後にEnterキーを押すとクラッシュします。この方法は非効率的であり、charはEOFチェックに最適ではないことを私は知っていますが、今のところ、文字列を返すように取得しようとしています。私はそれをこの方法で行うために必要であり、他の方法では必要ありません。文字列は行の正確な長さである必要があり、改行またはEOFintのいずれかである値を返す必要があります。これはchar値で引き続き使用できると思います。
このプログラムはC++ではなくCです
char getLine(char **line);
int main(int argc, char *argv[])
{
char *line;
char returnVal = 0;
returnVal = getLine(&line);
printf("%s", line);
free(line);
system("pause");
return 0;
}
char getLine(char **line) {
unsigned int lengthAdder = 1, counter = 0, size = 0;
char charRead = 0;
*line = malloc(lengthAdder);
while((charRead = getc(stdin)) != EOF && charRead != '\n')
{
*line[counter++] = charRead;
*line = realloc(*line, counter);
}
*line[counter] = '\0';
return charRead;
}
よろしくお願いします!