Xcode使用相对路径读写文件详细配置教程,`strncpy_s()` 和`strcat_s()`函数在mac中不支持,替换为strncpy()` 和 `strncat()` 函数

参考了网上不少博客,说实话,感觉都只写了一半步骤,让人有点摸不着头绪,下面简单写一下我的配置过程,希望对大家有用啦。不喜勿喷!

前言

Mac的Xcode默认是从绝对路径进行搜索,不像VS直接导入文件即可使用相对路径操作,还需要进行设置。(如果不闲写绝对路径麻烦、难迁移工程,直接写绝对路径也可的)

设置步骤

操作步骤 product > scheme > edit scheme->options->workdictionary->use custom working dictionary
在这里插入图片描述

选中use custom working dictionary, 输入你想开始执行相对路径的路径(图中写错了,难得改了)。
在这里插入图片描述

第二步:Demo
我的调用关系(仅为方便理解):
demo.cpp(main函数)=> 读取写在testlist.txt (包含了传入参数,读写文件路径 -》指向文件夹:1) => 根据在testlist.txt 文件中的路径对文件夹 1 进行读写操作 ,这是在finder中的文件路径关系:
在这里插入图片描述

写相对路径代码:
调用路径过程:demo.cpp 中 从testlist.txt读入参数和输入待读入文件的路径。下图是demo.cpp 中的调用代码(我的use custom working dictionary设置的文件路径是到mac。)
在这里插入图片描述
然后 testlist.txt (用来调用文件夹 1 中的文件)的文件路径是 ./test_vec/1/,其相对路径关系还是从 demo.cpp 开始计算。在这里插入图片描述
⚠️ 注意:

  1. 在读入 testlist.txt 文件时,注意看你的代码读取格式,我使用别人的读取代码,发现是按空格来读取的,自己不小心在路径前多输入一个空格,调试半天代码!唉~~用打印的路径测试吧!

  2. 这里面涉及到C/C++ 读写文件的路径表示方法:
    在这里插入图片描述
    参考链接:博客园 vrangerv 博主:C\C++编程中:相对路径+绝对路径

  3. 这个工程中,我使用到了字符串拷贝和拼接函数,在 VS 2017中使用的是 strncpy_s()strcat_s()函数,但是在 mac 的 Xcode 中,他们并不受支持,于是我修改成strncpy()strncat() 函数。用法介绍如下:

=> strcat_s
strcat_s脱胎于 strcat ,用于两个字符串的链接,strcat(str1,str2) 直接返回新的str1。但在vs2005后,为了安全起见,重新添加了些功能和api和以前不同。比如 strcat_s
为什么是安全起见呢?对于老的你添加str2的时候如果st1溢出怎么办?很明显这就是需要改进的地方。
所以新的strcat_s规定,有三个参数,必须指定str1的大小使用方法如下:

char string[20]="123";
strcat_s(string,sizeof(string),"456");
printf("%s",string);

=>strncat()
//TODO
网速不好,难得写了。。。。参考菜鸟教程或者其他博客吧:
菜鸟教程: https://www.runoob.com/cprogramming/c-function-strncat.html

参考博客
博客园 Djzny 博主:C++string函数之strcat_s

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值