c++练手项目:英语单词拼写测试程序
代码比较简单。基本的思路是从文本文件中按行读取数据,数据结构为“hello-你好”。前面是英语,后面是中文,中间用“-”连接。程序通过查找连词符的位置来分割中文和英文。再通过和用户输入的单词进行比较判断是否正确。
期间发现了另一个问题。起初是通过cin来获取用户输入的内容,刚开始看起来可以用。但当我拿课本上的单词开始实战的时候,发现cin没法分割空格(会把空格前后的东西看作是两次输入),也就是说没法测试短语。可以通过getline函数解决。之前学的getline是第一个参数是一个ifstream的读取对象,在这看来第一个参数还可以是用户输入的内容。第二个参数是要赋值的变量。
#include <fstream>//ifstream读文件,ofstream写文件,fstream读写文件
#include <string>//文本对象,储存读取的内容
#include <iostream>//屏幕输出cout,输入cin
#include <cstdlib>//调用system("pause");
#include <windows.h>//用于函数SetConsoleOutputCP(65001);更改cmd编码为utf8
using namespace std; int main()
{
SetConsoleOutputCP();
ifstream in("1.txt");
string line;
int mid;
string english;
string chinese; if(in) // 有该文件
{
while (getline (in, line)) // line中不包括每行的换行符
{
string userinput;
mid=line.find("-");
english=line.substr(,mid);
chinese=line.substr(mid+,line.max_size());
cout<<"the chinese word is "<<chinese<<endl;
getline(cin,userinput);
if(english.compare(userinput)==)
{
cout<<"your input is right"<<endl;
}else
{
cout<<"your input is wrong"<<endl;
}
}
}
else // 没有该文件
{
cout <<"no such file" << endl;
} system("pause");
return ; }
运行效果:

从最初的想法,到慢慢的每一步每一个函数的学习到实现,终于算是初步完成了。后面可能会继续完善稳定性(其实只要知道源码自己用,根本没什么稳定性问题)。还有想让它更好看一点,目前的想法就是让输出的字体颜色不一样,比如拼写正确就输出绿色字体,错误就输出红色字体。还有就是检测正确率,随机测试,能随时停止测试等等。
参考前面写的文章:
c++练手项目:英语单词拼写测试程序的更多相关文章
- 练手项目之image caption问题记录
小白一个,刚刚费了老大的劲完成一个练手项目--image caption,虽然跑通了,但是评估结果却惨不忍睹.于是贴上大神的作品,留待日后慢慢消化.顺便记录下自己踩坑的一些问题. 先膜拜下大神的作品. ...
- Python学习路径及练手项目合集
Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159
- web前端学习部落22群分享给需要前端练手项目
前端学习还是很有趣的,可以较快的上手然后自己开发一些好玩的项目来练手,网上也可以一抓一大把关于前端开发的小项目,可是还是有新手在学习的时候不知道可以做什么,以及怎么做,因此,就整理了一些前端项目教程, ...
- webpack练手项目之easySlide(三):commonChunks(转)
Hello,大家好. 在之前两篇文章中: webpack练手项目之easySlide(一):初探webpack webpack练手项目之easySlide(二):代码分割 与大家分享了webpack的 ...
- webpack练手项目之easySlide(二):代码分割(转)
在上一篇 webpack练手项目之easySlide(一):初探webpack 中我们一起为大家介绍了webpack的基本用法,使用webpack对前端代码进行模块化打包. 但是乍一看webpack ...
- Python之路【第二十四篇】:Python学习路径及练手项目合集
Python学习路径及练手项目合集 Wayne Shi· 2 个月前 参照:https://zhuanlan.zhihu.com/p/23561159 更多文章欢迎关注专栏:学习编程. 本系列Py ...
- 练手项目:利用pygame库编写射击游戏
本项目使用pygame模块编写了射击游戏,目的在于训练自己的Python基本功.了解中小型程序框架以及学习代码重构等.游戏具有一定的可玩性,感兴趣的可以试一下. 项目说明:出自<Python编程 ...
- Vue练手项目(包含typescript版本)
本项目的git仓库https://github.com/lznism/xiachufang-vue 对应的使用typescript实现的版本地址https://github.com/lznism/xi ...
- 适合Python的5大练手项目, 你练了么?
在练手项目的选择上,还存在疑问?不知道要从哪种项目先下手? 首先有两点建议: 最好不要写太应用的程序练手,要思考什么更像是知识,老只会写写爬虫是无用的,但是完全不写也不行. 对于练手的程序,要注意简化 ...
随机推荐
- 在Eclipse中设置中文JavaDOC
参考: 在Eclipse中设置中文JavaDOC
- POJ 3624 Charm Bracelet(01背包模板题)
题目链接 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 52318 Accepted: 21912 Descriptio ...
- POJ-图论-并查集模板
POJ-图论-并查集模板 1.init:把每一个元素初始化为一个集合,初始化后每一个元素的父亲节点是它本身,每一个元素的祖先节点也是它本身(也可以根据情况而变). void init() { for ...
- phpstorm打开报错方法
phpstorm打开报错方法 直接删掉默认文件夹里的idea文件夹 重新打开就可以了
- Java白皮书(总结一些题目)
java基础 1. 简述JVM的运行原理? Java平台由Java 虚拟机和Java 应用程序接口搭建,Java语言则是进入这个平台的通道, 用Java语言编写并编译的程序可以运行在这个平台 ...
- jiaba
- SQL Server 参数嗅探问题
摘要 MSSQL Server参数嗅探既是一个涉及知识面非常广泛,又是一个比较难于解决的课题,即使对于数据库老手也是一个比较头痛的问题.这篇文章从参数嗅探是什么,如何产生,表象是什么,会带来哪些问题, ...
- Python如何获取系统大小端模式
1. 第一种方法导入sys模块: >>> import sys >>> >>> sys.byteorder 'little' >>&g ...
- python_进程池以及线程池
可以重复利用的线程 直接上代码 from threading import Thread, current_thread from queue import Queue # 重写线程类 class M ...
- Spark之RDD依赖关系及DAG逻辑视图
RDD依赖关系为成两种:窄依赖(Narrow Dependency).宽依赖(Shuffle Dependency).窄依赖表示每个父RDD中的Partition最多被子RDD的一个Partition ...