c++从键盘输入字符串并保存成二进制文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++从键盘输入字符串并保存成二进制文件相关的知识,希望对你有一定的参考价值。

要求:
1、输入字符串中包括:大小写字母、空格、数字等字符,以“#”作为字符串输入的结
束条件;
2、对输入的字符进行加密并保存,以二进制文件方式保存,用户可以输入保存路径,
如:C:\file.txt ;
3、打开文件时,对加密文件进行解密并显示在屏幕上。
[实验提示]
1、使用cin 获取输入字符时,遇到空格时终止读取字符,为了避免这种情况,不能简单使用cin 来获取输入字符;
2、加密方式:
将字母 A 变成E,a 变成e,即将字母变成其后的第4 个字母,W 变A,X 变成B,Y
变成C,Z 变成D,w 变a,x 变成b,y 变成c,z 变成d。
解密方式:即加密方式的逆过程。

参考技术A #include <iostream>
#include <fstream>
using namespace std;

int main()

ofstream oufile("file.txt",ios::binary);
char ab[1000];
cin.get(ab,1000,'#');//参数=>数组地址,地址长度,输入结束符号

for(int i=0;ab[i]!='\0';i++)//加密

if(ab[i]<='Z'&& ab[i]>='A')
ab[i]=(ab[i]-'A'+4)%('Z'-'A')+'A';
else if(ab[i]<='z' && ab[i]>='a')
ab[i]=(ab[i]-'a'+4)%('z'-'a')+'a';

oufile<<ab;
oufile.close();
ifstream xx("file.txt");
char ch;
while(xx>>noskipws>>ch)//解密

if(ch<='Z' && ch>='A')
ch=(ch+'Z'-'A'-4-'A')%('Z'-'A')+'A';
else if(ch<='z' && ch>='a')
ch=(ch+'z'-'a'-4-'a')%('z'-'a')+'a';
cout<<ch;

return 0;
本回答被提问者采纳

有没有办法在标准 C++ 中直接从键盘读取输入? [复制]

【中文标题】有没有办法在标准 C++ 中直接从键盘读取输入? [复制]【英文标题】:Is there a way to read input directly from the keyboard in standard C++? [duplicate] 【发布时间】:2010-10-28 12:23:06 【问题描述】:

我知道有std::cin,但这需要用户输入一个字符串,然后按ENTER。有没有一种方法可以简单地获取按下的下一个键而无需按 ENTER 确认

【问题讨论】:

【参考方案1】:

您要查找的内容与操作控制台有关,并且与操作系统相关。如果您使用的是基于 UNIX 的操作系统,请查看 curses library,而在 Windows 中,&lt;conio.h&gt; 中有 getch()kbhit() 函数。

【讨论】:

【参考方案2】:

看起来most upvoted answer 有点过时了。

ncurses 库(基于提到的curses library)是一个可移植的实现,可用于基于 unix 和 linux 的操作系统、windows 等。

支持多种终端接口。

【讨论】:

【参考方案3】:

你可以使用

#include <conio.h>

然后用这种情况捕获字符

char c;
if (_kbhit())

  c = getch();
  switch(c)
  
  case ‘\0H’ :
  cout << "up arrow key!" << endl;
  break;
  

注意:我没试过……记得把整个东西放到一个“while(true)”中去测试。

【讨论】:

我假设 和 _kbhit() 是 windows/DOS 特定的? 另外,'\OH' 会翻译成向上箭头吗? (如,向下、向左和向右箭头的值是多少?) @camh:是的,afaik @Kean64:如果我没记错的话,有像 ARROW_KEY_UP 这样的常量,请尝试一下。不在我的开发电脑前... 这不是标准的 C++

以上是关于c++从键盘输入字符串并保存成二进制文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 GCC 将 C++ 应用程序静态编译成二进制文件

C++ 将浮点数保存并加载到二进制文件中,由指针寻址

java 如何将二进制数据流转换成字符串并保存

java语言编写一个程序,从键盘输入一个整数,将其转换为二进制数并输出 求大神帮忙

怎样读取数据库中存储的二进制图片文件

c语言 从键盘上读入一个整型数,将其转化成字符串并输出。例如:输入123,则转换为字符串“123