【发布时间】:2013-07-25 04:35:08
【问题描述】:
我需要一些帮助来纠正此代码,因为它会打印出一些奇怪的东西。
我使用无线工具和 iwlib.h 来扫描无线网络并获取它们的 ESSID。当我使用时:
printf("Network name %s:", result->b.essid);
然后它就像一个魅力一样为我打印出名字。但是,我想将其转换为 char,以便稍后通过网络通过缓冲区发送它。
(除非我可以发送结果并且“名称提取”可以在另一端发生?或者这不可能?)
请参阅下面的示例代码(不是完整代码),了解我如何尝试这样做,但结果是我得到了非常随机的字符。
wireless_scan_head head;
wireless_scan *result;
iwrange range;
while(result != NULL)
{
char *network;
network = result->b.essid;
int k;
int size = strnlen(result->b.essid);
printf("\n Network ESSID:");
for(k=0; k<=size; k++)
{
printf("%c", network[k]);
k++;
}
result = result->next;
}
感谢您的帮助!
【问题讨论】:
-
您还将 k 增加两次。要么在 for 语句中执行,要么在循环中执行,但不能同时执行。 (唠叨点......预增量(++k))
-
这就是问题所在,这是我的愚蠢错误。长时间工作让我的大脑停了下来:)非常感谢。
-
SSID 可以是 unicode,不是吗?
标签: c