码迷,mamicode.com
首页 > 编程语言 > 详细

C++控制台编程(还没整理的垃圾)

时间:2018-03-13 23:48:45      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:判断   round   time   文件   路径   ide   ==   程序   file   

--------------------------------文件-----------------------------------
fin.open(文件名); 打开文件读入,不会清空文件
fin.close(); 关闭文件读入,一定要,否则无法打开另一个文件
fout.open(文件名); 打开文件输出,会清空文件
fout.close(); 关闭文件输出,一定要,否则无法打开另一个文件
ofstream(文件名); 创建文件
DeleteFile(文件名);删除文件
如果要打开一个文件,文件名是用一个字符串或字符串加上一个字符串得到的,那么要写成这样:
string s="123456";
fin.open((s+".txt").c_str());
fout.open((s+".txt").c_str());
创建、删除文件:
string s="123456";
ofstream((s+".txt").c_str());
DeleteFile((s+"txt").c_str());
也可以这样写:
string s="123456.txt";
fin.open(s.c_str());
fout.open(s.c_str());
ofstream(s.c_str());
DeleteFile(s.c_str());

fin>>x; 从文件中读入x
fout<<x; 往文件中输出x

-------------------------------字体颜色--------------------------------
HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE);//句柄
SetConsoleTextAttribute(hout,FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);//设置三色相加,白色
SetConsoleTextAttribute(hout,FOREGROUND_INTENSITY|FOREGROUND_RED);//设置红色,红色
SetConsoleTextAttribute(hout,FOREGROUND_INTENSITY|FOREGROUND_GREEN);//设置绿色,绿色
SetConsoleTextAttribute(hout,FOREGROUND_INTENSITY|FOREGROUND_BLUE);//设置蓝色,蓝色
SetConsoleTextAttribute(hout,FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);//设置红色和绿色相加,黄色
SetConsoleTextAttribute(hout,FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);//设置红色和蓝色相加,粉色
SetConsoleTextAttribute(hout,FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);//设置绿色和蓝色相加,青色
SetConsoleTextAttribute(hout,FOREGROUND_INTENSITY);//设置颜色,没有添加颜色,故为原色

SetConsoleTextAttribute(hout,a);
a的取值范围
字体颜色:
1 深蓝色
2 深绿色
3 深青色
4 深红色
5 深粉色
6 黄色
7 深白色
8 灰色
9 浅蓝色
10 浅绿色
11 浅青色
12 浅红色
13 浅粉色
14 浅黄色
15 浅白色

背景颜色:
1~15 黑色
16~31 深蓝色
32~47 深绿色
48~63 深青色
64~79 深红色
80~95 深粉色
96~111 深黄色
112~127 深白色
128~143 灰色
144~159 浅蓝色
160~175 浅绿色
176~191 浅青色
192~207 浅红色
208~223 浅粉色
224~239 浅黄色
240~255 浅白色

如何使用:比如要深红色背景颜色,浅白色字体颜色,a就是64+15=79

-------------------------图标位置---------------------------------
HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE); 句柄
SetConsoleCursorPosition(hout,{y,x}); 去x,y的地方,第x行,第y列,注意,x和y是反着带进去的,写成{y,x}

-------------------------清屏-------------------------------------
system("cls");

-------------------------等待-------------------------------------
Sleep(x); 等待x毫秒

-----------------------按键判断-----------------------------------
KEY_DOWN(c); 判断按键按下,屏幕不显示

判断是否按下c
返回值是0或1,按下为1,否则为0
注意:是判断是否按下c,不是获取按键按下的字母,如果判断数字,必须要按下上面那一排的数字
不能用小键盘,F1、小键盘、Shift等键要用虚拟键码表,下面一个就会用到。

#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) 须要的头文件
#include<windows.h> 须要的头文件

int b;
while (1==1) 死循环
{
b=0;
b=KEY_DOWN(‘1‘); 判断按键按下
if (b) cout<<1; 如果按键按下的是1,输出1
}


判断按下

←↓→

#include<stdio.h>
#include<conio.h>
int main()
{
int ch;
while ( (ch=getch())!=0x1B ) 按Esc退出,
{
switch (ch)
{
case 0xE0:
switch (ch=getch())
{
case 72: printf("UP\n"); break;
case 80: printf("DOWN\n"); break;
case 75: printf("LEFT\n"); break;
case 77: printf("RIGHR\n"); break;
default: break;
}
break;
default:break;
}
}
}
程序说明:Esc的虚拟键码表为0x1B,回车Enter为13,↑为72,↓为80,←为75,→为77
如果按Esc退出如果按↑,输出UP,↓,输出DOWN,←,输出LEFT,→,输出RIGHR
建议:把它写成函数,把printf那4行输出改为调用别的函数、返回值等

升级版:
int f;
f=getch();
if (f==224)
f=getch();
当f=224,也就是按下 ↑↓←→时再取一下f
f常用值:
13 Enter
72 ↑
80 ↓
75 ←
77 →

---------------------------调用程序--------------------------------
WinExec(文件路径,1);
文件路径中的\要改为//,如:我要调用D:\a\b\c.exe,就要写成D://a//b//c.exe
如果要打开在运行程序所在的文件夹中的一个.exe文件,却不知道文件的位置,或知道文件位置,把\该为//有点困难,可以写成c.exe,
如果要打开在运行程序所在的文件夹下的一个或多个文件夹目录下的一个.exe文件,却不知道文件的位置,或知道文件位置,把\该为//有点困难,可以写成a//b//c.exe。

-------------------------获取文件位置------------------------------
GetCurrentDirectory(1000,buf);

---------------------------头文件集--------------------------------
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<conio.h>
#include<ctime>
#include<fstream>
#include<iomanip>
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)

--------------------------------函数声明---------------------------
int a(); 函数声明
int b(); 函数声明
int a()
{
b(); 调用b函数,因为函数声明了,所有能调用b
}
int b()
{
a(); 调用a函数
}

--------------------------------程序调用---------------------------
WinExec("x://xx//xxx.exe",f);
""内为路径,f为传入值
例:WinExec("D://Guess Number//Guess number//Guess number.exe",1);
如果要调用自身目录下的文件或文件夹内的文件:
WinExec("xxx.exe",f);
WinExec("xx//xxx.exe",f);
例:
WinExec("Guess number.exe",1);
WinExec("Guess number//Guess number.exe",1);

--------------------------------程序窗口---------------------------
system( "title 计时器" ); //更改标题,任务管理器内程序名同时更改
system( "mode con cols=x lines=y" ); //x行y列,非像素点

HWND hDos=GetForegroundWindow(); //隐藏、显示窗口的句柄
ShowWindow(hDos,SW_HIDE); //隐藏窗口
ShowWindow(hDos,SW_SHOW); //显示窗口

 

C++控制台编程(还没整理的垃圾)

标签:判断   round   time   文件   路径   ide   ==   程序   file   

原文地址:https://www.cnblogs.com/forestrain/p/8563460.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!