我要做一个背单词的程序,如何像读取数据库记录一样读取TXT文本的数据啊,文本中可以按照两种格式保存
第一种格式
book,pen,desk,map,bag,pencil
第二种格式
book
pen
desk
map
bag
pencil那么,怎么样每次读出一个单词呢

解决方案 »

  1.   

    FILE *openfile;
    int count;
    int i=0;
    char buf[2];
    BOOL bSingle;
    CString strTmp,str[100]; bSingle = TRUE;
    memset(buf, 0, 2); if ((openfile = fopen("C:\\abc.txt", "rt")) != NULL)
    {
    count = fread(buf, sizeof(char), 1, openfile);
    while(!feof(openfile))
    {
    if (memcmp(buf, ",", 1) == 0)
    {
    if (bSingle)
    {
    strTmp = "";
    bSingle = FALSE;
    }
    else
    {
    str[i]=strTmp;
    AfxMessageBox(str[i]);
    i=i+1;
    bSingle = TRUE;
    }
    }
    else
    {
    if (!bSingle)
    {
    strTmp += buf;
    }
    }
    count = fread(buf, sizeof(char), 1, openfile);
    }
    fclose(openfile);
    }

    }
    读取“,”之间的字符窜
      

  2.   

    第二种方式可以用fscanf去读,
    如果你的第一种方式每个","后有一个空格,也可以用这种方式。
    fscanf读到空格,或转行时,停止。即每次读一个单词。
      

  3.   

    CStdioFile csvFile;
    CString csvFile_data;
    int pos = 0; if(csvFile.ReadString(csvFile_data))
    {
    moduleid = csvFile_data.Tokenize(_T(","), pos);
              }
      

  4.   

    回:gaoxiaopai(菜鸟) 
    你的方法没有报错,但也没有弹出对话框啊,怎么回事
      

  5.   

    回:gaoxiaopai(菜鸟) 
    你的方法没有报错,但也没有弹出对话框啊,怎么回事
      

  6.   

    第二种格式
    可以用流来读。
    #include <iostream.h>
    ifstream file(pathname);
    file.getline(...);
      

  7.   

    用CStdioFile简单一点,他可以一次读出一行来,免去检查单词间的空格的麻烦。
      

  8.   

    void main()
    {
        ifstream in("name.txt");
        string line;
        while(getline(in, line)
        {
            cout << line << endl;
        }
    }