0

私は構造体型を扱っています。私は自分のファイルから「ケルベロスがステュクス川を守っている」という一行を引用します。印刷しようとすると、文字「c」だけが印刷されます。なぜこれが起こっているのかわかりません。

#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef unsigned int uint;

struct wordType
{
    char word[80];
    uint count;
};

struct wordType words[10];

int main( void ) {
    FILE * inputFile;
    char * line = NULL;
    size_t len = 0;
    ssize_t read;
    uint index;
    inputFile = fopen( "input.txt", "r");

    if( inputFile == NULL )
    {
        printf( "Error: File could not be opened" );
        /*report failure*/
        return 1;
    }   

    index = 0;
    while( ( read = getline( &line, &len, inputFile ) ) != -1 )
    {
        printf( "%s\n", line );
        *words[index].word = *line;
        printf("line = %s\n", (words[index].word) );
    }

    free( line );
    return 0; 
}   
4

2 に答える 2

2
*words[index].word = *line;

にコピーline[0]するwords[index].word[0]ので、それは 1 文字だけです。行全体をコピーする場合は、使用する必要があります

strcpy(words[index].word, line);

ただし、線が適合することを確認する必要があります。

strlen(line) < 80

それ以前は。

于 2013-04-28T20:23:56.047 に答える