首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 问一下测试数据每行是用\r\n结尾还是用\n结尾呢? [已结贴,结贴人:dsdsdds]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-22 11:28:06 楼主
    不知道测试数据每行是用\r\n结尾还是用\n结尾呢?
    我担心读入数据时会受这个影响...
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-22 22:28:121楼 得分:4
    我觉得应该用\n就可以了.哈哈.
    可以期待一下权威的回答.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-22 22:36:512楼 得分:4
    在Windows上以\r\n结尾,在Linux上以\n结尾
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-23 12:56:573楼 得分:4
    2楼正解.读入数据时不管\r\n都去掉就可以了.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-23 12:59:144楼 得分:0
    :)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-23 22:31:335楼 得分:4
    按照规则读进来,然后输出出去就ok了:)
    有多少关键数据,可以用的数据,就读那么多就ok了:)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-23 22:32:026楼 得分:0
    ps:测试的那几句是\n结束的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jiefangtw
    • 等级:
    发表于:2007-12-24 16:37:117楼 得分:4
    我给你我的代码看,记得给我分就行!
    原来我使用'\n\a'的,后来发现不行!
    生成测试数据的代码:
    C/C++ code
    bool Intel200712::GetRandomData(int nTotal, const wchar_t *pchFileName) //获得试验数据 { wstring stFileName; if(NULL == pchFileName) { stFileName = GetCurrentDirW(); stFileName += _T("\\Students.in"); } else { stFileName = pchFileName; } fstream fileRandom(stFileName.c_str(), ios::out); if(fileRandom.fail()) { int nError = ::GetLastError(); return false; } char chBuf[64]; memset(chBuf, 0, sizeof(chBuf)); sprintf(chBuf, "%d\n", nTotal); fileRandom << chBuf; for(int i = 0; i < nTotal; i ++) { memset(chBuf, 0, sizeof(chBuf)); sprintf(chBuf, "%010d ", i); for(int j = 0; j < 50; j ++) { chBuf[11 + j] = rand() % 5 + '0'; } chBuf[61] = '\n'; fileRandom << chBuf; // fileRandom.write(chBuf, (std::streamsize)strlen(chBuf)); } fileRandom.close(); return true; }

    读取学生数据的代码:
    C/C++ code
    bool Intel200712::ReadInputFile(const wchar_t *pchFileName) { wstring stFileName; if(NULL == pchFileName) { stFileName = GetCurrentDirW(); stFileName += _T("\\Students.in"); } else { stFileName = pchFileName; } // char chFileTime[MAX_PATH]; // memset(chFileTime, 0, sizeof(chFileTime)); // ::wcstombs(chFileTime, (wchar_t *)stFileName.c_str(), stFileName.size()); // cout<< chFileTime << endl; // const wchar_t *pch = stFileName.c_str(); // wcout << pch << endl; //为什么还必须放在这个地方,而放到main函数入口就会导致cout<<pchData无法显示 // setlocale(LC_ALL,"Chinese-simplified"); //这个函数是为了让VS2005能够识别中文文件名而特地大老远跑过来帮忙的 fstream fileRead; fileRead.open(stFileName.c_str(), ios::in); if(!fileRead.good()) { unsigned long nErrorCode = ::GetLastError(); return false; } int nBufLen = 100; char *pchBuf = new char[nBufLen]; //本例子100个长度足够了 memset(pchBuf, 0, nBufLen); fileRead.getline(pchBuf, nBufLen - 1); this->m_nStudentCount = atoi(pchBuf); cout << pchBuf << endl; this->m_pStudentQuestionary = new STUDENT_QUESTIONARY[this->m_nStudentCount]; memset(m_pStudentQuestionary, 0, sizeof(STUDENT_QUESTIONARY) * m_nStudentCount); int nIndex = 0; while(!fileRead.eof()) { if(nIndex >= m_nStudentCount) { break; } fileRead.getline(pchBuf, nBufLen - 1); // cout << pchBuf << endl; m_pStudentQuestionary[nIndex ++] = ExplainQuestionaryInfo(pchBuf, (int)strlen(pchBuf)); //ExplainQuestionaryInfo用来解释读到的数据 } fileRead.close(); delete[] pchBuf; return true; }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jiefangtw
    • 等级:
    发表于:2007-12-24 16:38:158楼 得分:0
    期待高手的解法!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-24 17:33:049楼 得分:0
    fgets(szLine, sizeof(szLine), fp);
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved