上周做多媒体技术的作业,JPEG编码问题:FDCT、量化、逆量化和IDCT,只是简单套公式,但还是感觉自己C++好渣。。。太久没做,手生了,可怕可怕。
所以复习了下文件操作和。。基础操作。这里贴一些当时被坑到的地方==
1. 文件操作
#include <fstream> ifstream infile("E://Desktop/SourceData.txt"); ofstream outfile1("E://Desktop/First.txt"); int i = 0; string temp = ""; // read from SourceData.txt while (!infile.eof()) { getline(infile, temp); for (int j = 0 ; j < 16 ; j++) dataSource[i][j] = toDec(temp[3*j], temp[3*j+1]) - 128; i++; } infile.close(); // output data (before FDCT) for (int i = 0 ; i < 16 ; i++) { for (int j = 0 ; j < 16; j++) { outfile1 << setw(5) << dataSource[i][j] << " "; if (j == 7) outfile1 << " "; } if (i == 7) outfile1 << endl; outfile1 << endl; } outfile1.close();
//***********************写文件***************
#include <cstring> // for c_str() void write(char* str) { ofstream out(str); //这里要用字符数组的。。字符串不行 out << "Hello" << endl; out.close(); } char file[256]; string str = "E://Desktop/Test-for-file.txt"; strcpy(file, str.c_str()); //把字符串转为字符数组,copy到字符数组中 write(file);
#include <cmath>
#define PI 3.14159265
3. 输出格式控制
#include <iomanip> setw() fixed << setprecision(2)这种是直接截断,四舍五入另外写