1

私は以下のコードを持っています:

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

int main(void)
{
    int lendata;
    printf("Content-type:text/html\n\n");
    printf("<html><body>");
    lendata = atoi(getenv("CONTENT_LENGTH"));
    char *buf = malloc(lendata+1);
    int i=0;
    char *data;
    while((data=fgets(buf,lendata+1,stdin)) != NULL){
        char *lines[i];     
        lines[i] = strdup(data);
        printf("%s<br>",lines[i]);      
        i++;

}
    printf("%d, %d",lendata,i); 
    free(buf);
    printf("</body></html>");
    return 0;

}

内部に異なるデータ型 (つまり、文字列、 intger ) を持つ *.csv ファイルを解析しようとしています。ファイル内の各行を処理するにはどうすればよいですか? ありがとう!

4

1 に答える 1

1

これで良くなるかも……。

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

int main(void)
{
    int lendata;
    printf("Content-type:text/html\n\n");
    printf("<html><body>");
    lendata = atoi(getenv("CONTENT_LENGTH"));
    char *buf = malloc(lendata+1);
    int i=0;
    char *data;
    while((data=fgets(buf,lendata+1,stdin)) != NULL){
          /*char *lines[i]; */       
          /* lines[i] = strdup(data); */  
          printf("%s<br>",data);        
          i++;  
    }
    printf("%d, %d",lendata,i); 
    free(buf);
    printf("</body></html>");
    return 0;

}

sscanf 呼び出しは、一致したエントリの数を返します。

numentries = sscanf(line,"%s,%s,%s,%s,%s",ent1,ent2,ent3,ent4,ent5);
于 2013-08-16T03:12:57.763 に答える