在做题的时候需要读入字符串,但是又不想使用char 数组,于是采用string存储,当时遇到了scanf读取string失败,查阅资料后总结下。

scanf是c的标准输入输出流,想要读入string,需要提前对string分配足够大的空间,否则会截断数据,其次scanf的参数需要string[0]。

test 1: read a signle string using scanf
#include <bits/stdc++.h>
using namespace std;
int main()
{
string word;
word.resize(100); // 提前分配好空间,更建议使用cin
scanf("%s", &word[[0]);
cout << word << endl;
return 0;
}
test 2: read a vector string using scanf
#include <bits/stdc++.h>
using namespace std;
int main()
{
vector<string> words;
string word;
word.resize(100);
for(int i = 0; i < 3; i++)
{
scanf("%s", &word[0]);
words.push_back(word);
}
return 0;
}
补充提高cin速度,一行代码搞定:

std::ios::sync_with_stdio(false);

最新文章

  1. [LeetCode] Kth Smallest Element in a BST 二叉搜索树中的第K小的元素
  2. (一)SQL Server分区详解Partition(目录)
  3. redis 集群搭建 以及 报错解决
  4. java-base64编码和解码
  5. linux c学习笔记----互斥锁属性
  6. hdu1828 线段树+离散化+扫描线
  7. 将Excel中数据导入数据库(二)
  8. emacs 操作集锦
  9. (转)Mac OS X内核编程,MAC驱动开发资源汇总
  10. Android 有趣味的GridView
  11. 《第一行代码》学习笔记2-Android开发特色
  12. Docker - 访问仓库
  13. 第 8 章 IO库
  14. Programming In Scala笔记-第十九章、类型参数,协变逆变,上界下界
  15. element表格添加查看操作
  16. 通过hash实现前端路由
  17. LeetCode算法题-Distribute Candies(Java实现)
  18. Session小结
  19. 华硕笔记本的U盘启动
  20. gt_argmax_overlaps = overlaps.argmax(axis=0) ValueError: attempt to get argmax of an empty sequence错误处理

热门文章

  1. npm查询所有可以安装的包
  2. brew mongodb 安装 使用 brew update
  3. the origin of month name in English
  4. oracle abs ap 银行账号 组织层 新增api
  5. mysql and or优先级
  6. How to Avoid Trivial Solutions in Physics-Informed Neural Networks
  7. 微信小程序授权及检测访问当前页面需要去登录的操作
  8. dockerfile实践学习
  9. 常用软件版本记录 lisoaring
  10. 更改svn地址