교사가이 과제를 제기했습니다.C++로 파일을 어떻게 얻습니까?
법 집행을 위해 유나이티드 네트워크 사령부 (United Network Command)에서 고용되었으므로 해독해야하는 null 암호가 포함 된 파일이 제공되었습니다.
예를 들어 첫 번째 파일의 경우 다른 모든 문자는 정확합니다 (예 : 'hielqlpo'는 안녕하세요 (첫 번째 문자로 시작한다고 가정). 첫 번째 질문은 file? 문서가 폴더의 바탕 화면에 있고 파일의 이름이 document01.cry 인 경우 해당 파일을 프로그램에 넣어야하는 명령이 확실하지 않습니다.
편지를 빼고 편지를 건너 뛰지 만, 솔직히 나는 그 질문을 게시하기 전에 그 문제를 해결하고 싶습니다! 지금 당장 ... 내 질문은 제목에 명시된 바와 같습니다 : C++에서 읽기 위해 파일을 어떻게 움켜 잡는가?
차이가 있다면 (확실하니) Visual C + + 2008 Express Edition (무료이기 때문에 좋아요!) 나는 또한 내가 지금까지 가지고있는 것을 첨부 했으니, 그것이 아주 기본이라는 것을 명심해라. 그리고 내가 결국 getchar();
을 추가했다. 그래서 그것이 제대로 실행될 때, 나는 그것을 볼 수 있도록 창을 열어 둔다. (Visual 익스프레스는 실행이 이루어집니다 즉시 창을 닫습니다 경향이있다)
지금까지 코드 :.
#include<iostream>
using namespace std;
int main()
{
while (! cin.eof())
{
int c = cin.get() ;
cout.put(c) ;
}
getchar();
}
PS를 :이 코드를 잡고는 모든 문자를두고 있음을 알고 있습니다. 일단 괜찮 으면 파일에서 읽을 수있게되면 거기에서 그 파일을 수정할 수 있다고 생각합니다. 나는 또한 책을 찌르거나 두 사람이 C++을 사용하여 무엇이든 나타나는지보고 "나를 잡아라!"라고 외쳐야합니다. 다시 한 번 감사드립니다!
EDIT :: 또한 궁금한 점이 있나요? 원하는 파일을 입력 할 수있는 방법이 있습니까? (예 :..
char filename;
cout << "Please make sure the document is in the same file as the program, thank you!" << endl << "Please input document name: " ;
cin >> filename;
cout << endl;
ifstream infile(filename, ios::in);
이 코드는 작동하지 않습니다 그것은 CONST의 char *로 변환 할 수없는 문자를 말하는 오류를 다시 촬영하는 방법이 문제가 해결 될 수
편집 2? :!, 나는 그것을 부분이 발견 특징에 대해 신경 쓰지 덕분에 다시 지원을
"goto"문없이 이것을하는 것이 좋습니다. "goto"의 사용은 거의 절대 필요하지 않으며, 프로그램을 읽고, 디버그하고, 관리하기가 더 어렵습니다. goto 대신에 다른 루프를 사용하는 방법을 알아내는 것이 좋습니다. ("break"또는 "continue"키워드를 사용하고 싶을 수도 있습니다.) – Colin
게시 후 몇 시간 후 goto 문에 대한 결정을 내렸지 만 대신 while 루프를 만들었습니다. 팁이 없으면 훨씬 깨끗하게 보입니다. – Jeff
오류가 발생해도 eof에 도달하지 않을 수 있으므로 프로그램을 무한 루프에 넣기 때문에 istream에서 읽을 때 "! eof"를 루프의 조건으로 사용하지 마십시오. 게다가 스트림의 상태는 입력 조작 후 및 결과를 사용하기 전에 검사해야합니다. 프로그램의 경우 이것은'while (! infile.eof()) {infile.get (letter); ...'는'while (infile.get (letter)) {...로 대체되어야 함을 의미합니다. '. –