我接了一个项目,我需要一些帮助。基本上,它是一个检查线路板上的一些管脚是否连接的程序。(好吧,这是简化版本。整个过程就是一个带有微控制器的电路。)
问题是,当一个引脚连接时,我得到一个数值,而当它没有连接时,我得不到任何值,因为它在我的表中是空白的。
我如何接受这些值?
我甚至需要接受空白,才能知道它不是连接的,另外表还包含一些其他非数字值。我尝试使用fscanf()函数读取该文件,但它不太起作用。我知道只有fscanf()、fread()、fgets()和fgetc()函数可以读取不同类型的文件。
另外,是否可以使用C从Excel文件中读取数据?
该表的一个示例是:
FROM TO
1 39
2 在这里,数字1和2在FROM列下面,它告诉我们连接器的第一个端连接到哪个引脚。下面的数字告诉我们连接器的另一端连接到哪个管脚,当该列为空时,它的一端没有连接。
现在我要做的是创建一个程序,为微控制器创建一个汇编语言程序,所以我需要能够读取连接器是否连接,如果是连接到哪个管脚?因此,我需要执行一些操作。(我可以自己管理)。
我面临的困难是从特定的一行读取和读取空白。
发布于 2011-08-22 00:33:47
使用fgets()或relative读取行。然后在该行上使用sscanf(),检查是否有一个或两个成功的转换(返回值)。如果有一个转换,则第二个值为空或丢失;如果有两个,则两个数字都是安全的。
请注意,除非您很小心,否则fscanf()和相关人员会阅读过去的换行符,因此它们不会提供您需要的信息。
发布于 2011-08-22 00:15:01
所以你的文件更像这样
Col1 col2 \n
r1val1 r1val2\n
.
.依此类推,如果是这样,那么使用fscanf()从file.Then使用strtok()函数读取字符串(直到\n),将字符串分解为标记,下面是相同的教程
http://www.gnu.org/s/hello/manual/libc/Finding-Tokens-in-a-String.html
希望这能帮到你。如果你是一个新手,不要直接去找微控制器,因为如果你不知道一些基本的概念,你可能会以错误的方式理解很多东西。
发布于 2011-08-22 00:38:33
这是C中的一个常见问题。当行边界在语法中具有意义时,仅使用scanf()-family函数很难直接读取文件。
只需使用fgets(3)读取每一行,然后一次在一行上运行sscanf()。通过这样做,您将不会错误地跳转到下一行的第一列。
https://stackoverflow.com/questions/7139386
复制相似问题