本文是原创文章,未经允许,请勿转载。

  原来程序中是通过运行exe,然后加上参数,然程序运行起来的。也就是main(int argc, char** argv)这里是通过argv参数是从命令行

传过来的。现在想改为在main函数里面给出这个参数,其实我做的是load_image(img, argv[1]);这个函数。然后我希望argv[1]参数是从txt文本

取到的。所以我写了如下程序

    ///////////////////// 把1.txt文件中的所有的图片的路径都push_bach到image_path里面 /////////////////////
ifstream in("1.txt");
string filename;
string line;
std::vector<string> image_path;
if (in) // 有该文件
{
while (getline(in, line)) // line中不包括每行的换行符
{
cout << line << endl;
image_path.push_back(line);
}
}
else // 没有该文件
{
cout << "没有输入的图片的路径!" << endl;
} cout<<"image_path[0]= "<<image_path[]<<endl;
cout<<"image_path[0] type"<<typeid(image_path[]).name()<<endl; matrix<rgb_pixel> img;
string image_path0_str = image_path[];
cout<<"image_path0_str="<<image_path0_str<<endl; //load_image(img,image_path[0]);
string s_path = "/home/student/dlib-master/examples/faces/yangmi_liudehua.jpg";
cout<<"s_path ="<<s_path<<endl; load_image(img,image_path0_str);
image_path0_str和s_path两个变量进行cout出来的都是 /home/student/dlib-master/examples/faces/yangmi_liudehua.jpg
那我就奇怪了,但是为什么load_image(img,s_path);这样可以load成功,而这个load_image(img,image_path0_str);不?
所以我
   int a= image_path0_str.size();
int b= s_path.size();
if(a==b)
{
  cout<<"这两个变量长度相等"<<endl;
}
else
{
   cout<<"这两个变量长度不相等"<<endl;
} if(s_path ==image_path0_str)
{
  cout<<"这两个变量相等"<<endl;
}
else
{
  cout<<"这两个变量不相等"<<endl;
}

同事提示我看看长度相等不,有没有空字符之类的。甚至字符串的字节码都可以打出来进行对比,以便发现问题。所以又写了这个,输出的结果是这两个变量长度不相等, 这两个变量不相等。同事提示我,可能是编码的问题。这我就想起来了。我的1.txt是从windows拷贝到Ubuntu1404的。然后果断删除,直接在Ubuntu下建了个1.txt然后输入

这样子之后,我就可以 load_image(img,image_path0_str);成功了。这可是耽搁了我一天的问题。解决了好开心的。

 

解决 main(int argc, char** argv)这种情况下通过命令行传参,改为main函数里面给定参数。的更多相关文章

  1. VC++中的int main(int argc, char argv[])是什么意思

    这是C/C++的一重要函数,叫主函数.无论程序多复杂,代码中必须有这么一个函数,也只能有一个这样的函数:程序执行时就是从这个函数进入的.由于问得比较笼统,如果你想知道详细情况的话,发给你一个网友的求助 ...

  2. int main( int argc, char **argv)

    1.参数 (有时参数是void) argc是程序运行时参数个数 argv是存储参数的数组,可以用char* argv[],也可以用char **argv. 例如编译一个hello.c的程序 1 #in ...

  3. int main(int argc,char* argv[])参数详解

    argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[] ...

  4. int main(int argc, char** argv) 以及CommandLineParser

    参考链接: 关于int main(int argc, char** argv) http://blog.csdn.net/liuhuiyi/article/details/8239303 http:/ ...

  5. c/c++中int main(int argc,char *argv[])的具体含义

    int main(int argc,char * argv[ ]) argv为指针的指针 argc为整数 char **argv or: char *argv[ ] or: char argv[ ][ ...

  6. opencv中 int main(int argc,char* argv[])详解

    opencv中  int main(int argc,char* argv[])详解 argc是命令行总的参数个数     argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数     ...

  7. main(int argc, char *argv[])详解

    argc是命令行总的参数个数     argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数     命令行后面跟的用户输入的参数,比如:     int   main(int   ar ...

  8. int main(int argc,char *argv[])的具体含义

    int main(int argc,char * argv[]) argv为指针的指针 argc为整数 char **argv or: char *argv[] or: char argv[][] m ...

  9. 关于int main(int argc,char* argv[])详解

    平时在VS的环境下,主函数总会看到这两个参数,今天突然很想知道这两个参数的原理以及作用,因此查了下资料.真心受教了. 下面的博文是在百度空间看一位大神的,原文链接:http://hi.baidu.co ...

随机推荐

  1. ElasticSearch搜索解析

    这篇介绍稍多,篇幅可能有点多,下面会针对一些重要的点做一些小测试 搜索返回文档解析 hits搜索返回的结果中最重要的一部分其中包含了 索引信息(_index,_type,_index,_source, ...

  2. redis性能监控(一): Redis Info 命令 - 获取 Redis 服务器的各种信息和统计数值

    https://blog.csdn.net/wmx3ng/article/details/82772891 https://blog.csdn.net/lxpbs8851/article/detail ...

  3. [转] 【Monogdb】MongoDB的日志系统

    记得前几天有个小伙伴要查看mongodb的日志,从而排查问题,可能总找不到日志放在何处,今天就系统说一下mongodb的日志系统.mongodb中主要有四种日志.分别是系统日志.Journal日志.o ...

  4. 【bzoj4811】[Ynoi2017]由乃的OJ 树链剖分+线段树区间合并

    题解: 好像和noi那题并没有什么区别 只是加上了修改和变成树上 比较显然我们可以用树链剖分来维护

  5. python中super的理解(转)

    原文地址:https://www.zhihu.com/question/20040039 针对你的问题,答案是可以,并没有区别.但是这题下的回答我感觉都不够好. 要谈论 super,首先我们应该无视 ...

  6. Javascript转义字符串中的特殊字符处理

    Web应用系统中,客户端发送请求到服务器,请求中的字符串参数,在被序列化成json过程中有些特殊字符会被空格代, 导致传递到服务器端再解析的时候,原本的输入参数就会被改变. 目前遇到的特殊字符有加号( ...

  7. c_数据结构_链表

    #include<stdio.h> #include<stdlib.h> #define ERROR 0 #define OK 1 #define OVERFLOW -2 ty ...

  8. Python的_文件操作

    打开文件:file_obj=open("文件路径","模式",“编码”’) 其中模式有: r,以只读方式打开文件(默认) w,打开一个文件只用于写入(不存在则创 ...

  9. seafile增加邮件服务功能

    这个很简单哈,直接上配置.此处我用的163邮箱 vim /opt/seafile/conf/seahub_settings.py ### 163邮箱配置测试 ### EMAIL_USE_SSL = F ...

  10. HDFS分布式文件系统的常用命令行操作

    一.HDFS的客户端种类 1.网页形式  =>用于测试 网址为你的namenode节点的ip+50070的端口号,如: 192.168.50.128:50070 2.命令行形式 =>用于测 ...