সংকলনের ত্রুটিগুলি কীভাবে ঠিক করতে হবে যা "বিপথগামী '\ 342'" এবং "বিপথগামী '\ 200'" উল্লেখ করে? [বন্ধ]


9

আমি এই প্রোগ্রামটি লিখেছি:

#include<stdio.h>
int main()
{
printf(“Hello World\n”);
return 0;
}

আমি এটি হিসাবে সংরক্ষণ করেছি first.cএবং সংকলনের চেষ্টা করেছি কিন্তু এই সমস্যাটি পেয়ে আমি এমনকি জিসিসি সংকলকটিও ইনস্টল করেছি।

$ gcc first.c -o first1
first.c: In function ‘main’:
first.c:4:1: error: stray ‘\342’ in program
first.c:4:1: error: stray ‘\200’ in program
first.c:4:1: error: stray ‘\234’ in program
first.c:4:11: error: ‘Hello’ undeclared (first use in this function)
first.c:4:11: note: each undeclared identifier is reported only once for each function 
it appears in
first.c:4:17: error: expected ‘)’ before ‘World’
first.c:4:17: error: stray ‘\’ in program
first.c:4:17: error: stray ‘\342’ in program
first.c:4:17: error: stray ‘\200’ in program
first.c:4:17: error: stray ‘\235’ in program

আমি কিভাবে এই সমস্যা ঠিক করতে পারবো?


আপনি কি এই প্রোগ্রামটি অন্য কোনও ওয়ার্ড প্রসেসর বা লিবার অফিস বা মাইক্রোসফ্ট ওয়ার্ডের মতো নথি থেকে অনুলিপি করেছেন?
জবিন

আপনি যদি কোথাও থেকে কোডটি অনুলিপি করে থাকেন তবে কোডটি অনুলিপি করে নিজের মতো করে কোডটি পুনরায় লিখুন যে কোডটি আপনি অনুলিপি করেছেন তাতে কিছু অযাচিত কোড এমবেড থাকতে পারে।

উত্তর:


13

সমস্যাটি হ'ল আপনার কাছে এএসসিআইআই কোটেশন চিহ্নের পরিবর্তে ইউনিকোড উদ্ধৃতি চিহ্ন রয়েছে; সম্ভবত আপনার সম্পাদক সেগুলিকে স্বয়ংক্রিয়ভাবে সেগুলি পরিবর্তন করেছে, বা আপনি কোনও সাইট থেকে পাঠ্যটি অনুলিপি করেছেন যা এর অনুমোদনের সফ্টওয়্যারটিতে স্বয়ংক্রিয়ভাবে এটি করে। সাধারণ এএসসিআইআই কোট (0x22, ") এর সাথে কোটগুলি প্রতিস্থাপন করুন এবং এটি কাজ করা উচিত।

স্থির উত্স:

#include <stdio.h>
int main()
{
    printf("Hello World\n");
    return 0;
}

+1 আমি ভাবছিলাম যে সে কীভাবে সেগুলিতে ফিরে / ফরোয়ার্ডের উদ্ধৃতি পেয়েছে।
অ্যারন

ইউনিকোড বনাম এএসসিআইআই উদ্ধৃতি চিহ্নগুলি পার্থক্যটি বর্ণনা করার সর্বোত্তম উপায় হতে পারে না, যেহেতু সি ( ") এর স্ট্রিংগুলির জন্য সঠিক উদ্ধৃতি চিহ্নগুলিও ইউনিকোড অক্ষর। (এগুলি এএসসিআইআই চরিত্র হিসাবেও ঘটে তবে যে কোনও সময় যে কেউ দুজনের মধ্যে বেছে নিচ্ছেন, তাদের ফাইল সম্ভবত কিছু ইউনিকোড ফর্ম্যাটে সংরক্ষিত হয়েছে Un ইউনিক্সের মতো সিস্টেমে সাধারণত UTF-8।)
এলিয়াহ কাগন ২ag

অন্যান্য স্নিগ্ধ চরিত্রগুলি এর পরিবর্তে -
ট্রেভর বয়েড স্মিথ

2

আপনি আপনার স্ট্রিংটি ভুল ধরণের উদ্ধৃতিতে আবদ্ধ করছেন।

তোমার আছে:

Hello World\n

পরিবর্তে আপনার উচিত:

"Hello World\n"

আপনি যে উদ্ধৃতিগুলি ব্যবহার করেছেন সেগুলি দেখতে দেখতে একইরকম, তারা কোনও স্ট্রিং আবদ্ধ হিসাবে কোনও সি কম্পাইলার দ্বারা স্বীকৃত নয়। সুতরাং, আপনি অচিহ্নযুক্ত ইউনিকোড অক্ষরগুলি সম্পর্কে ত্রুটি বার্তা পান এবং স্ট্রিংয়ের বিষয়বস্তুকে অব্যক্ত প্রোগ্রাম কোড হিসাবে ব্যাখ্যা করা হচ্ছে এমন ত্রুটি বার্তা পান।

আপনি নোট করবেন যে আপনি যে উদ্ধৃতিগুলি ব্যবহার করেছেন সেগুলিতে একটি উদ্ধৃতি শুরুর এবং শেষের জন্য পৃথক অক্ষর রয়েছে (এগুলি বক্ররেখাগুলি প্রায়শই টাইপসেট হয় এমনভাবে বাঁকা হয়)। অনেক ওয়ার্ড প্রসেসর - যাবিনের পরামর্শ অনুসারে - স্বয়ংক্রিয়ভাবে সরল "উদ্ধৃতিগুলিকে এমন অভিনব উদ্ধৃতি চিহ্নগুলিতে রূপান্তরিত করে। আপনি যদি সি প্রোগ্রাম রচনা করতে একটি ওয়ার্ড প্রসেসর ব্যবহার করেন তবে পরিবর্তে আপনার একটি পাঠ্য সম্পাদক ব্যবহার করা উচিত।

উবুন্টু geditডিফল্টরূপে ইনস্টলড সহ আসে (যদিও বেছে নিতে আরও অনেক পাঠ্য সম্পাদক রয়েছে)। অনেক টেক্সট এডিটর ভালো লেগেছে, geditসি (আপনার প্রোগ্রামে তাই বিভিন্ন টেক্সট বিভিন্ন রং দেখানো এর অর্থ বোঝান হবে), যা একটি উপযোগী বৈশিষ্ট্য এবং একটি টেক্সট এডিটর তোলে সহ অনেক প্রোগ্রামিং ভাষার জন্য সিনট্যাক্স হাইলাইটিং প্রদান করে অনেক বেশি সুবিধাজনক এবং ব্যবহারকারী বান্ধব জন্য ওয়ার্ড প্রসেসরের চেয়ে প্রোগ্রামিং।

এটি উবুন্টু-নির্দিষ্ট হতে পারে, যদি আপনি অন্য প্ল্যাটফর্মের কোনও পাঠ্য সম্পাদক ব্যবহার করেন যা স্বয়ংক্রিয়ভাবে অ-অভিনব সংস্করণে আটকানো উদ্ধৃতি চিহ্নগুলি হ্রাস করে। তবে এই প্রশ্নটি বন্ধ হয়ে স্ট্যাক ওভারফ্লোতে স্থানান্তরিত হতে পারে ।


সমস্যা সমাধান.আমার প্রোগ্রাম সংকলিত.টানেক্স অনেক
জাহিদ

1

আপনি sedএই সমস্যাগুলি সমাধান করতে কমান্ডটি ব্যবহার করতে পারেন ।

এটি আপনাকে কী প্রতিস্থাপন করা হবে তার একটি দ্রুত পূর্বরূপ দেবে।

sed -re 's/”|“/"/g' File.txt

এটি প্রতিস্থাপনগুলি করবে এবং প্রতিস্থাপনটি নতুন ফাইলটিতে নামিয়ে দেবে WithoutSmartQuotes.txt:

sed -re 's/”|“/"/g' File.txt > WithoutSmartQuotes.txt

এটি মূল ফাইলটি ওভাররাইট করবে:

sed -i .bk -re 's/”|“/"/g' File.txt
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.