0

大家好,这是我第一次在堆栈溢出上发帖,我是 c 新手,所以如果我做错了什么,请告诉我。

我正在尝试使用 fscanf 将文件中的单词放入我的两个字符串变量(currentUID 和 currentKey)中。但是由于某种原因,当我使用 fscanf 为 currentKey 变量赋值时,存储在 currentUID 中的值(在我的第一条评论中)消失了......我一直在寻找可能发生这种情况的原因,但到目前为止我一直想不通。您知道为什么会发生这种情况吗?

while(!feof(fp))
{
    fscanf(fp, "%s", currentUID);
        //1 currentUID has correct value here...
    fscanf(fp, "%s", currentKey);
        //2 But currentUID has lost its value here. 
}

以下是文件格式的示例:

421 0123456789abcdef0123456789abcde0

422 0123456789abcdef0123456789abcde1

423 0123456789abcdef0123456789abcde2

423 0123456789abcdef0123456789abcde3

我要做的就是在我的第二条评论时访问这两个值,以便我可以将它们传递给另一个方法。任何输入将不胜感激。

4

1 回答 1

0

阅读如下:

    while(fscanf(fp, "%s%s", currentUID,currentKey)==2)
{
   // printf("%s ", currentUID);
        //1 currentUID has correct value here...
   // printf("%s\n", currentKey);
        //2 But currentUID has lost its value here. 
}

编辑 您是否正确声明了变量?

char currentUID[4],currentKey[33];

于 2013-09-14T04:16:57.770 回答