【发布时间】:2015-01-21 12:30:30
【问题描述】:
我重写了一个项目所需的函数,用于构建包含媒体本身信息的媒体数据库。 在下面的一段代码中,我试图从用户那里获取一个格式为 HH:MM:SS 的字符串作为标题的长度。 然后我必须使用指向第一个 isdigit char 的指针拆分字符串几个小时,第一个 isdigit char 在第一个“:”之后几分钟,第一个 isdigit char 在最后一个“:”之后检查字符串是否符合我想要的用户进入。 为了检查子字符串是否合法,我使用 atoi 转换为 int 并尝试写回结构,但指针让我敬酒。 任何帮助表示赞赏。
这里是代码本身(粘贴以提高可读性)datetime.c with functions to examine string and put pointers on first digit of the input, first digit after first: and first digit after last:
我评论了发生编译错误的位置(pastebin 上的 l.103 105 107)
为了更好地了解这里是我使用的结构:
datastructure.h everything but char * zeit is required as written
提前谢谢我最近真的很愚蠢,试图通过反复试验来强制它编译,我认为我根本没有接近目的地......
编辑:当我尝试编译时:
||=== Build: Debug in Iue2 (compiler: GNU GCC Compiler) ===|
C:\Users[...]\datetime.c||In function 'convertStringToTime':|
C:\Users[...]\datetime.c|104|error: request for member 'hour' in something not a structure or union|
C:\Users[...]\datetime.c|106|error: request for member 'minute' in something not a structure or union|
C:\Users[...]1\datetime.c|108|error: request for member 'second' in something not a structure or union|
||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
【问题讨论】:
-
使用
strtol,您可以同时进行验证和转换。 -
至于您的问题,您遇到什么错误?请编辑您的问题以包含完整且未经编辑的错误日志。
-
已更新。抱歉,我认为将其添加到行中并引用它是可以的。
-
好的,我现在只是通过以 pastebin 样式阅读它就发现了我的错误。而不是 *lp 我将 *zeit 传递给 convertStringToTime。伙计,我不敢相信我在过去 3 天里总是读它。