我使用以下代码将字符串流解析为tm结构:
std::tm tm;
std::stringstream ss("Jan 9 2014 12:35:34");
ss >> std::get_time(&tm, "%b %d %Y %H:%M:%S");
Run Code Online (Sandbox Code Playgroud)
我有兴趣检查是否发生了解析错误(无效输入).看来这个函数不会抛出异常.没有在文档中找到有用的信息:http: //en.cppreference.com/w/cpp/io/manip/get_time
听起来像'goodbit'可能是方向,但我不知道该怎么做.
(我使用的是VS2013编译器)
我有一个简单的bash脚本.
它的目的是监视http访问日志文件(test.log)并将更新的命中率输出到文件(out.log):
stdbuf -o0 tail -f test.log | awk -F'[ "]+' '{
ipcount[$1]++;
print "test" > "out.log"; #Truncate out.log
for (i in ipcount) {
printf "%15s - %d\n", i, ipcount[i] >> "out.log";
printf "%15s - %d\n", i, ipcount[i] }
}'
Run Code Online (Sandbox Code Playgroud)
主要逻辑是有效的.我唯一的问题是重定向到"out.log"似乎不起作用.最后一个printf将预期结果输出到标准输出.但另外两个printf没有输出任何东西到"out.log",我无法弄清楚为什么.out.log拥有所有权限(777)
我是新手(来自C++世界)
我创建了一个新的编写器,它从io.writer"继承":
type httpWriter struct {
io.Writer
}
Run Code Online (Sandbox Code Playgroud)
接下来我实现了io.Writer接口的Write()函数:
func (w *httpWriter) Write(p []byte) (n int, err, error){...}
Run Code Online (Sandbox Code Playgroud)
然后,我将所有输出重定向到该编写器.
我有权在Write()实现中打印实际的字符串.我已经尝试了我可以在文档中找到的所有字符串格式,但没有一个给我原始字符串作为输出.
fmt.Printf("%s\n",p) \\etc..
Run Code Online (Sandbox Code Playgroud)
希望得到帮助